widget/qt/nsQtKeyUtils.cpp

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/widget/qt/nsQtKeyUtils.cpp	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,499 @@
     1.4 +/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
     1.5 + *
     1.6 + * This Source Code Form is subject to the terms of the Mozilla Public
     1.7 + * License, v. 2.0. If a copy of the MPL was not distributed with this
     1.8 + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     1.9 +
    1.10 +#include <qnamespace.h>
    1.11 +#include "mozilla/ArrayUtils.h"
    1.12 +#include "mozilla/TextEvents.h"
    1.13 +
    1.14 +#include "nsWindow.h"
    1.15 +#include "nsQtKeyUtils.h"
    1.16 +
    1.17 +using namespace mozilla;
    1.18 +using namespace mozilla::widget;
    1.19 +
    1.20 +struct nsKeyConverter
    1.21 +{
    1.22 +    int vkCode; // Platform independent key code
    1.23 +    int keysym; // Qt key code
    1.24 +};
    1.25 +
    1.26 +static struct nsKeyConverter nsKeycodes[] =
    1.27 +{
    1.28 +//  { NS_VK_CANCEL,        Qt::Key_Cancel },
    1.29 +    { NS_VK_BACK,          Qt::Key_Backspace },
    1.30 +    { NS_VK_TAB,           Qt::Key_Tab },
    1.31 +    { NS_VK_TAB,           Qt::Key_Backtab },
    1.32 +//  { NS_VK_CLEAR,         Qt::Key_Clear },
    1.33 +    { NS_VK_RETURN,        Qt::Key_Return },
    1.34 +    { NS_VK_RETURN,        Qt::Key_Enter },
    1.35 +    { NS_VK_SHIFT,         Qt::Key_Shift },
    1.36 +    { NS_VK_CONTROL,       Qt::Key_Control },
    1.37 +    { NS_VK_ALT,           Qt::Key_Alt },
    1.38 +    { NS_VK_PAUSE,         Qt::Key_Pause },
    1.39 +    { NS_VK_CAPS_LOCK,     Qt::Key_CapsLock },
    1.40 +    { NS_VK_ESCAPE,        Qt::Key_Escape },
    1.41 +    { NS_VK_SPACE,         Qt::Key_Space },
    1.42 +    { NS_VK_PAGE_UP,       Qt::Key_PageUp },
    1.43 +    { NS_VK_PAGE_DOWN,     Qt::Key_PageDown },
    1.44 +    { NS_VK_END,           Qt::Key_End },
    1.45 +    { NS_VK_HOME,          Qt::Key_Home },
    1.46 +    { NS_VK_LEFT,          Qt::Key_Left },
    1.47 +    { NS_VK_UP,            Qt::Key_Up },
    1.48 +    { NS_VK_RIGHT,         Qt::Key_Right },
    1.49 +    { NS_VK_DOWN,          Qt::Key_Down },
    1.50 +    { NS_VK_PRINTSCREEN,   Qt::Key_Print },
    1.51 +    { NS_VK_INSERT,        Qt::Key_Insert },
    1.52 +    { NS_VK_DELETE,        Qt::Key_Delete },
    1.53 +    { NS_VK_HELP,          Qt::Key_Help },
    1.54 +
    1.55 +    { NS_VK_0,             Qt::Key_0 },
    1.56 +    { NS_VK_1,             Qt::Key_1 },
    1.57 +    { NS_VK_2,             Qt::Key_2 },
    1.58 +    { NS_VK_3,             Qt::Key_3 },
    1.59 +    { NS_VK_4,             Qt::Key_4 },
    1.60 +    { NS_VK_5,             Qt::Key_5 },
    1.61 +    { NS_VK_6,             Qt::Key_6 },
    1.62 +    { NS_VK_7,             Qt::Key_7 },
    1.63 +    { NS_VK_8,             Qt::Key_8 },
    1.64 +    { NS_VK_9,             Qt::Key_9 },
    1.65 +
    1.66 +    { NS_VK_SEMICOLON,     Qt::Key_Semicolon },
    1.67 +    { NS_VK_EQUALS,        Qt::Key_Equal },
    1.68 +
    1.69 +    { NS_VK_A,             Qt::Key_A },
    1.70 +    { NS_VK_B,             Qt::Key_B },
    1.71 +    { NS_VK_C,             Qt::Key_C },
    1.72 +    { NS_VK_D,             Qt::Key_D },
    1.73 +    { NS_VK_E,             Qt::Key_E },
    1.74 +    { NS_VK_F,             Qt::Key_F },
    1.75 +    { NS_VK_G,             Qt::Key_G },
    1.76 +    { NS_VK_H,             Qt::Key_H },
    1.77 +    { NS_VK_I,             Qt::Key_I },
    1.78 +    { NS_VK_J,             Qt::Key_J },
    1.79 +    { NS_VK_K,             Qt::Key_K },
    1.80 +    { NS_VK_L,             Qt::Key_L },
    1.81 +    { NS_VK_M,             Qt::Key_M },
    1.82 +    { NS_VK_N,             Qt::Key_N },
    1.83 +    { NS_VK_O,             Qt::Key_O },
    1.84 +    { NS_VK_P,             Qt::Key_P },
    1.85 +    { NS_VK_Q,             Qt::Key_Q },
    1.86 +    { NS_VK_R,             Qt::Key_R },
    1.87 +    { NS_VK_S,             Qt::Key_S },
    1.88 +    { NS_VK_T,             Qt::Key_T },
    1.89 +    { NS_VK_U,             Qt::Key_U },
    1.90 +    { NS_VK_V,             Qt::Key_V },
    1.91 +    { NS_VK_W,             Qt::Key_W },
    1.92 +    { NS_VK_X,             Qt::Key_X },
    1.93 +    { NS_VK_Y,             Qt::Key_Y },
    1.94 +    { NS_VK_Z,             Qt::Key_Z },
    1.95 +
    1.96 +    { NS_VK_NUMPAD0,       Qt::Key_0 },
    1.97 +    { NS_VK_NUMPAD1,       Qt::Key_1 },
    1.98 +    { NS_VK_NUMPAD2,       Qt::Key_2 },
    1.99 +    { NS_VK_NUMPAD3,       Qt::Key_3 },
   1.100 +    { NS_VK_NUMPAD4,       Qt::Key_4 },
   1.101 +    { NS_VK_NUMPAD5,       Qt::Key_5 },
   1.102 +    { NS_VK_NUMPAD6,       Qt::Key_6 },
   1.103 +    { NS_VK_NUMPAD7,       Qt::Key_7 },
   1.104 +    { NS_VK_NUMPAD8,       Qt::Key_8 },
   1.105 +    { NS_VK_NUMPAD9,       Qt::Key_9 },
   1.106 +    { NS_VK_MULTIPLY,      Qt::Key_Asterisk },
   1.107 +    { NS_VK_ADD,           Qt::Key_Plus },
   1.108 +//  { NS_VK_SEPARATOR,     Qt::Key_Separator },
   1.109 +    { NS_VK_SUBTRACT,      Qt::Key_Minus },
   1.110 +    { NS_VK_DECIMAL,       Qt::Key_Period },
   1.111 +    { NS_VK_DIVIDE,        Qt::Key_Slash },
   1.112 +    { NS_VK_F1,            Qt::Key_F1 },
   1.113 +    { NS_VK_F2,            Qt::Key_F2 },
   1.114 +    { NS_VK_F3,            Qt::Key_F3 },
   1.115 +    { NS_VK_F4,            Qt::Key_F4 },
   1.116 +    { NS_VK_F5,            Qt::Key_F5 },
   1.117 +    { NS_VK_F6,            Qt::Key_F6 },
   1.118 +    { NS_VK_F7,            Qt::Key_F7 },
   1.119 +    { NS_VK_F8,            Qt::Key_F8 },
   1.120 +    { NS_VK_F9,            Qt::Key_F9 },
   1.121 +    { NS_VK_F10,           Qt::Key_F10 },
   1.122 +    { NS_VK_F11,           Qt::Key_F11 },
   1.123 +    { NS_VK_F12,           Qt::Key_F12 },
   1.124 +    { NS_VK_F13,           Qt::Key_F13 },
   1.125 +    { NS_VK_F14,           Qt::Key_F14 },
   1.126 +    { NS_VK_F15,           Qt::Key_F15 },
   1.127 +    { NS_VK_F16,           Qt::Key_F16 },
   1.128 +    { NS_VK_F17,           Qt::Key_F17 },
   1.129 +    { NS_VK_F18,           Qt::Key_F18 },
   1.130 +    { NS_VK_F19,           Qt::Key_F19 },
   1.131 +    { NS_VK_F20,           Qt::Key_F20 },
   1.132 +    { NS_VK_F21,           Qt::Key_F21 },
   1.133 +    { NS_VK_F22,           Qt::Key_F22 },
   1.134 +    { NS_VK_F23,           Qt::Key_F23 },
   1.135 +    { NS_VK_F24,           Qt::Key_F24 },
   1.136 +
   1.137 +    { NS_VK_NUM_LOCK,      Qt::Key_NumLock },
   1.138 +    { NS_VK_SCROLL_LOCK,   Qt::Key_ScrollLock },
   1.139 +
   1.140 +    { NS_VK_COMMA,         Qt::Key_Comma },
   1.141 +    { NS_VK_PERIOD,        Qt::Key_Period },
   1.142 +    { NS_VK_SLASH,         Qt::Key_Slash },
   1.143 +    { NS_VK_BACK_QUOTE,    Qt::Key_QuoteLeft },
   1.144 +    { NS_VK_OPEN_BRACKET,  Qt::Key_ParenLeft },
   1.145 +    { NS_VK_CLOSE_BRACKET, Qt::Key_ParenRight },
   1.146 +    { NS_VK_QUOTE,         Qt::Key_QuoteDbl },
   1.147 +
   1.148 +    { NS_VK_META,          Qt::Key_Meta }
   1.149 +};
   1.150 +
   1.151 +int
   1.152 +QtKeyCodeToDOMKeyCode(int aKeysym)
   1.153 +{
   1.154 +    unsigned int i;
   1.155 +
   1.156 +    // First, try to handle alphanumeric input, not listed in nsKeycodes:
   1.157 +    // most likely, more letters will be getting typed in than things in
   1.158 +    // the key list, so we will look through these first.
   1.159 +
   1.160 +    // since X has different key symbols for upper and lowercase letters and
   1.161 +    // mozilla does not, convert gdk's to mozilla's
   1.162 +    if (aKeysym >= Qt::Key_A && aKeysym <= Qt::Key_Z)
   1.163 +        return aKeysym - Qt::Key_A + NS_VK_A;
   1.164 +
   1.165 +    // numbers
   1.166 +    if (aKeysym >= Qt::Key_0 && aKeysym <= Qt::Key_9)
   1.167 +        return aKeysym - Qt::Key_0 + NS_VK_0;
   1.168 +
   1.169 +    // keypad numbers
   1.170 +//    if (aKeysym >= Qt::Key_KP_0 && aKeysym <= Qt::Key_KP_9)
   1.171 +//        return aKeysym - Qt::Key_KP_0 + NS_VK_NUMPAD0;
   1.172 +
   1.173 +    // misc other things
   1.174 +    for (i = 0; i < ArrayLength(nsKeycodes); i++) {
   1.175 +        if (nsKeycodes[i].keysym == aKeysym)
   1.176 +            return(nsKeycodes[i].vkCode);
   1.177 +    }
   1.178 +
   1.179 +    // function keys
   1.180 +    if (aKeysym >= Qt::Key_F1 && aKeysym <= Qt::Key_F24)
   1.181 +        return aKeysym - Qt::Key_F1 + NS_VK_F1;
   1.182 +
   1.183 +    return((int)0);
   1.184 +}
   1.185 +
   1.186 +int
   1.187 +DOMKeyCodeToQtKeyCode(int aKeysym)
   1.188 +{
   1.189 +    unsigned int i;
   1.190 +
   1.191 +    // First, try to handle alphanumeric input, not listed in nsKeycodes:
   1.192 +    // most likely, more letters will be getting typed in than things in
   1.193 +    // the key list, so we will look through these first.
   1.194 +
   1.195 +    if (aKeysym >= NS_VK_A && aKeysym <= NS_VK_Z)
   1.196 +      // gdk and DOM both use the ASCII codes for these keys.
   1.197 +      return aKeysym;
   1.198 +
   1.199 +    // numbers
   1.200 +    if (aKeysym >= NS_VK_0 && aKeysym <= NS_VK_9)
   1.201 +      // gdk and DOM both use the ASCII codes for these keys.
   1.202 +      return aKeysym - Qt::Key_0 + NS_VK_0;
   1.203 +
   1.204 +    // keypad numbers
   1.205 +    if (aKeysym >= NS_VK_NUMPAD0 && aKeysym <= NS_VK_NUMPAD9) {
   1.206 +      NS_ERROR("keypad numbers conversion not implemented");
   1.207 +      //return aKeysym - NS_VK_NUMPAD0 + Qt::Key_KP_0;
   1.208 +      return 0;
   1.209 +    }
   1.210 +
   1.211 +    // misc other things
   1.212 +    for (i = 0; i < ArrayLength(nsKeycodes); ++i) {
   1.213 +      if (nsKeycodes[i].vkCode == aKeysym) {
   1.214 +        return nsKeycodes[i].keysym;
   1.215 +      }
   1.216 +    }
   1.217 +
   1.218 +    // function keys
   1.219 +    if (aKeysym >= NS_VK_F1 && aKeysym <= NS_VK_F9)
   1.220 +      return aKeysym - NS_VK_F1 + Qt::Key_F1;
   1.221 +
   1.222 +    return 0;
   1.223 +}
   1.224 +
   1.225 +KeyNameIndex
   1.226 +QtKeyCodeToDOMKeyNameIndex(int aKeysym)
   1.227 +{
   1.228 +    switch (aKeysym) {
   1.229 +
   1.230 +#define NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX(aNativeKey, aKeyNameIndex) \
   1.231 +        case aNativeKey: return aKeyNameIndex;
   1.232 +
   1.233 +#include "NativeKeyToDOMKeyName.h"
   1.234 +
   1.235 +#undef NS_NATIVE_KEY_TO_DOM_KEY_NAME_INDEX
   1.236 +
   1.237 +        case Qt::Key_Exclam:
   1.238 +        case Qt::Key_QuoteDbl:
   1.239 +        case Qt::Key_NumberSign:
   1.240 +        case Qt::Key_Dollar:
   1.241 +        case Qt::Key_Percent:
   1.242 +        case Qt::Key_Ampersand:
   1.243 +        case Qt::Key_Apostrophe:
   1.244 +        case Qt::Key_ParenLeft:
   1.245 +        case Qt::Key_ParenRight:
   1.246 +        case Qt::Key_Asterisk:
   1.247 +        case Qt::Key_Plus:
   1.248 +        case Qt::Key_Comma:
   1.249 +        case Qt::Key_Minus:
   1.250 +        case Qt::Key_Period:
   1.251 +        case Qt::Key_Slash:
   1.252 +        case Qt::Key_0:
   1.253 +        case Qt::Key_1:
   1.254 +        case Qt::Key_2:
   1.255 +        case Qt::Key_3:
   1.256 +        case Qt::Key_4:
   1.257 +        case Qt::Key_5:
   1.258 +        case Qt::Key_6:
   1.259 +        case Qt::Key_7:
   1.260 +        case Qt::Key_8:
   1.261 +        case Qt::Key_9:
   1.262 +        case Qt::Key_Colon:
   1.263 +        case Qt::Key_Semicolon:
   1.264 +        case Qt::Key_Less:
   1.265 +        case Qt::Key_Equal:
   1.266 +        case Qt::Key_Greater:
   1.267 +        case Qt::Key_Question:
   1.268 +        case Qt::Key_At:
   1.269 +        case Qt::Key_A:
   1.270 +        case Qt::Key_B:
   1.271 +        case Qt::Key_C:
   1.272 +        case Qt::Key_D:
   1.273 +        case Qt::Key_E:
   1.274 +        case Qt::Key_F:
   1.275 +        case Qt::Key_G:
   1.276 +        case Qt::Key_H:
   1.277 +        case Qt::Key_I:
   1.278 +        case Qt::Key_J:
   1.279 +        case Qt::Key_K:
   1.280 +        case Qt::Key_L:
   1.281 +        case Qt::Key_M:
   1.282 +        case Qt::Key_N:
   1.283 +        case Qt::Key_O:
   1.284 +        case Qt::Key_P:
   1.285 +        case Qt::Key_Q:
   1.286 +        case Qt::Key_R:
   1.287 +        case Qt::Key_S:
   1.288 +        case Qt::Key_T:
   1.289 +        case Qt::Key_U:
   1.290 +        case Qt::Key_V:
   1.291 +        case Qt::Key_W:
   1.292 +        case Qt::Key_X:
   1.293 +        case Qt::Key_Y:
   1.294 +        case Qt::Key_Z:
   1.295 +        case Qt::Key_BracketLeft:
   1.296 +        case Qt::Key_Backslash:
   1.297 +        case Qt::Key_BracketRight:
   1.298 +        case Qt::Key_AsciiCircum:
   1.299 +        case Qt::Key_Underscore:
   1.300 +        case Qt::Key_QuoteLeft:
   1.301 +        case Qt::Key_BraceLeft:
   1.302 +        case Qt::Key_Bar:
   1.303 +        case Qt::Key_BraceRight:
   1.304 +        case Qt::Key_AsciiTilde:
   1.305 +        case Qt::Key_exclamdown:
   1.306 +        case Qt::Key_cent:
   1.307 +        case Qt::Key_sterling:
   1.308 +        case Qt::Key_currency:
   1.309 +        case Qt::Key_yen:
   1.310 +        case Qt::Key_brokenbar:
   1.311 +        case Qt::Key_section:
   1.312 +        case Qt::Key_diaeresis:
   1.313 +        case Qt::Key_copyright:
   1.314 +        case Qt::Key_ordfeminine:
   1.315 +        case Qt::Key_guillemotleft:
   1.316 +        case Qt::Key_notsign:
   1.317 +        case Qt::Key_hyphen:
   1.318 +        case Qt::Key_registered:
   1.319 +        case Qt::Key_macron:
   1.320 +        case Qt::Key_degree:
   1.321 +        case Qt::Key_plusminus:
   1.322 +        case Qt::Key_twosuperior:
   1.323 +        case Qt::Key_threesuperior:
   1.324 +        case Qt::Key_acute:
   1.325 +        case Qt::Key_mu:
   1.326 +        case Qt::Key_paragraph:
   1.327 +        case Qt::Key_periodcentered:
   1.328 +        case Qt::Key_cedilla:
   1.329 +        case Qt::Key_onesuperior:
   1.330 +        case Qt::Key_masculine:
   1.331 +        case Qt::Key_guillemotright:
   1.332 +        case Qt::Key_onequarter:
   1.333 +        case Qt::Key_onehalf:
   1.334 +        case Qt::Key_threequarters:
   1.335 +        case Qt::Key_questiondown:
   1.336 +        case Qt::Key_Agrave:
   1.337 +        case Qt::Key_Aacute:
   1.338 +        case Qt::Key_Acircumflex:
   1.339 +        case Qt::Key_Atilde:
   1.340 +        case Qt::Key_Adiaeresis:
   1.341 +        case Qt::Key_Aring:
   1.342 +        case Qt::Key_AE:
   1.343 +        case Qt::Key_Ccedilla:
   1.344 +        case Qt::Key_Egrave:
   1.345 +        case Qt::Key_Eacute:
   1.346 +        case Qt::Key_Ecircumflex:
   1.347 +        case Qt::Key_Ediaeresis:
   1.348 +        case Qt::Key_Igrave:
   1.349 +        case Qt::Key_Iacute:
   1.350 +        case Qt::Key_Icircumflex:
   1.351 +        case Qt::Key_Idiaeresis:
   1.352 +        case Qt::Key_ETH:
   1.353 +        case Qt::Key_Ntilde:
   1.354 +        case Qt::Key_Ograve:
   1.355 +        case Qt::Key_Oacute:
   1.356 +        case Qt::Key_Ocircumflex:
   1.357 +        case Qt::Key_Otilde:
   1.358 +        case Qt::Key_Odiaeresis:
   1.359 +        case Qt::Key_multiply:
   1.360 +        case Qt::Key_Ooblique:
   1.361 +        case Qt::Key_Ugrave:
   1.362 +        case Qt::Key_Uacute:
   1.363 +        case Qt::Key_Ucircumflex:
   1.364 +        case Qt::Key_Udiaeresis:
   1.365 +        case Qt::Key_Yacute:
   1.366 +        case Qt::Key_THORN:
   1.367 +        case Qt::Key_ssharp:
   1.368 +        case Qt::Key_division:
   1.369 +        case Qt::Key_ydiaeresis:
   1.370 +            return KEY_NAME_INDEX_PrintableKey;
   1.371 +
   1.372 +        case Qt::Key_Backtab:
   1.373 +        case Qt::Key_Direction_L:
   1.374 +        case Qt::Key_Direction_R:
   1.375 +        case Qt::Key_SingleCandidate:
   1.376 +        case Qt::Key_Hiragana_Katakana:
   1.377 +        case Qt::Key_Zenkaku_Hankaku:
   1.378 +        case Qt::Key_Touroku:
   1.379 +        case Qt::Key_Massyo:
   1.380 +        case Qt::Key_Hangul:
   1.381 +        case Qt::Key_Hangul_Start:
   1.382 +        case Qt::Key_Hangul_End:
   1.383 +        case Qt::Key_Hangul_Hanja:
   1.384 +        case Qt::Key_Hangul_Jamo:
   1.385 +        case Qt::Key_Hangul_Romaja:
   1.386 +        case Qt::Key_Hangul_Jeonja:
   1.387 +        case Qt::Key_Hangul_Banja:
   1.388 +        case Qt::Key_Hangul_PreHanja:
   1.389 +        case Qt::Key_Hangul_PostHanja:
   1.390 +        case Qt::Key_Hangul_Special:
   1.391 +        case Qt::Key_Dead_Belowdot:
   1.392 +        case Qt::Key_Dead_Hook:
   1.393 +        case Qt::Key_Dead_Horn:
   1.394 +        case Qt::Key_TrebleUp:
   1.395 +        case Qt::Key_TrebleDown:
   1.396 +        case Qt::Key_Standby:
   1.397 +        case Qt::Key_OpenUrl:
   1.398 +        case Qt::Key_LaunchMedia:
   1.399 +        case Qt::Key_KeyboardLightOnOff:
   1.400 +        case Qt::Key_KeyboardBrightnessUp:
   1.401 +        case Qt::Key_KeyboardBrightnessDown:
   1.402 +        case Qt::Key_WakeUp:
   1.403 +        case Qt::Key_ScreenSaver:
   1.404 +        case Qt::Key_WWW:
   1.405 +        case Qt::Key_Memo:
   1.406 +        case Qt::Key_LightBulb:
   1.407 +        case Qt::Key_Shop:
   1.408 +        case Qt::Key_History:
   1.409 +        case Qt::Key_AddFavorite:
   1.410 +        case Qt::Key_HotLinks:
   1.411 +        case Qt::Key_Finance:
   1.412 +        case Qt::Key_Community:
   1.413 +        case Qt::Key_BackForward:
   1.414 +        case Qt::Key_ApplicationLeft:
   1.415 +        case Qt::Key_ApplicationRight:
   1.416 +        case Qt::Key_Book:
   1.417 +        case Qt::Key_CD:
   1.418 +        case Qt::Key_Calculator:
   1.419 +        case Qt::Key_ToDoList:
   1.420 +        case Qt::Key_ClearGrab:
   1.421 +        case Qt::Key_Close:
   1.422 +        case Qt::Key_Display:
   1.423 +        case Qt::Key_DOS:
   1.424 +        case Qt::Key_Documents:
   1.425 +        case Qt::Key_Excel:
   1.426 +        case Qt::Key_Explorer:
   1.427 +        case Qt::Key_Game:
   1.428 +        case Qt::Key_Go:
   1.429 +        case Qt::Key_iTouch:
   1.430 +        case Qt::Key_LogOff:
   1.431 +        case Qt::Key_Market:
   1.432 +        case Qt::Key_Meeting:
   1.433 +        case Qt::Key_MenuKB:
   1.434 +        case Qt::Key_MenuPB:
   1.435 +        case Qt::Key_MySites:
   1.436 +        case Qt::Key_News:
   1.437 +        case Qt::Key_OfficeHome:
   1.438 +        case Qt::Key_Option:
   1.439 +        case Qt::Key_Phone:
   1.440 +        case Qt::Key_Calendar:
   1.441 +        case Qt::Key_Reply:
   1.442 +        case Qt::Key_RotateWindows:
   1.443 +        case Qt::Key_RotationPB:
   1.444 +        case Qt::Key_RotationKB:
   1.445 +        case Qt::Key_Save:
   1.446 +        case Qt::Key_Send:
   1.447 +        case Qt::Key_Spell:
   1.448 +        case Qt::Key_SplitScreen:
   1.449 +        case Qt::Key_Support:
   1.450 +        case Qt::Key_TaskPane:
   1.451 +        case Qt::Key_Terminal:
   1.452 +        case Qt::Key_Tools:
   1.453 +        case Qt::Key_Travel:
   1.454 +        case Qt::Key_Video:
   1.455 +        case Qt::Key_Word:
   1.456 +        case Qt::Key_Xfer:
   1.457 +        case Qt::Key_ZoomIn:
   1.458 +        case Qt::Key_ZoomOut:
   1.459 +        case Qt::Key_Away:
   1.460 +        case Qt::Key_Messenger:
   1.461 +        case Qt::Key_WebCam:
   1.462 +        case Qt::Key_MailForward:
   1.463 +        case Qt::Key_Pictures:
   1.464 +        case Qt::Key_Music:
   1.465 +        case Qt::Key_Battery:
   1.466 +        case Qt::Key_Bluetooth:
   1.467 +        case Qt::Key_WLAN:
   1.468 +        case Qt::Key_UWB:
   1.469 +        case Qt::Key_AudioRepeat:
   1.470 +        case Qt::Key_AudioCycleTrack:
   1.471 +        case Qt::Key_Time:
   1.472 +        case Qt::Key_Hibernate:
   1.473 +        case Qt::Key_View:
   1.474 +        case Qt::Key_TopMenu:
   1.475 +        case Qt::Key_PowerDown:
   1.476 +        case Qt::Key_Suspend:
   1.477 +        case Qt::Key_ContrastAdjust:
   1.478 +        case Qt::Key_TouchpadToggle:
   1.479 +        case Qt::Key_TouchpadOn:
   1.480 +        case Qt::Key_TouchpadOff:
   1.481 +        case Qt::Key_unknown:
   1.482 +        case Qt::Key_Call:
   1.483 +        case Qt::Key_CameraFocus:
   1.484 +        case Qt::Key_Context1:
   1.485 +        case Qt::Key_Context2:
   1.486 +        case Qt::Key_Context3:
   1.487 +        case Qt::Key_Context4:
   1.488 +        case Qt::Key_Flip:
   1.489 +        case Qt::Key_Hangup:
   1.490 +        case Qt::Key_No:
   1.491 +        case Qt::Key_Select:
   1.492 +        case Qt::Key_Yes:
   1.493 +        case Qt::Key_ToggleCallHangup:
   1.494 +        case Qt::Key_VoiceDial:
   1.495 +        case Qt::Key_LastNumberRedial:
   1.496 +        case Qt::Key_Printer:
   1.497 +        case Qt::Key_Sleep:
   1.498 +        default:
   1.499 +            return KEY_NAME_INDEX_Unidentified;
   1.500 +    }
   1.501 +}
   1.502 +

mercurial