179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
361
362
363
364
365
366
367
368
371
372
373
374
375
376
377
378
379
380
381
383static constexpr struct {
390 { Qt::Key_Space, QT_TRANSLATE_NOOP(
"QShortcut",
"Space") },
391 { Qt::Key_Escape, QT_TRANSLATE_NOOP(
"QShortcut",
"Esc") },
392 { Qt::Key_Tab, QT_TRANSLATE_NOOP(
"QShortcut",
"Tab") },
393 { Qt::Key_Backtab, QT_TRANSLATE_NOOP(
"QShortcut",
"Backtab") },
394 { Qt::Key_Backspace, QT_TRANSLATE_NOOP(
"QShortcut",
"Backspace") },
395 { Qt::Key_Return, QT_TRANSLATE_NOOP(
"QShortcut",
"Return") },
396 { Qt::Key_Enter, QT_TRANSLATE_NOOP(
"QShortcut",
"Enter") },
397 { Qt::Key_Insert, QT_TRANSLATE_NOOP(
"QShortcut",
"Ins") },
398 { Qt::Key_Delete, QT_TRANSLATE_NOOP(
"QShortcut",
"Del") },
399 { Qt::Key_Pause, QT_TRANSLATE_NOOP(
"QShortcut",
"Pause") },
400 { Qt::Key_Print, QT_TRANSLATE_NOOP(
"QShortcut",
"Print") },
401 { Qt::Key_SysReq, QT_TRANSLATE_NOOP(
"QShortcut",
"SysReq") },
402 { Qt::Key_Home, QT_TRANSLATE_NOOP(
"QShortcut",
"Home") },
403 { Qt::Key_End, QT_TRANSLATE_NOOP(
"QShortcut",
"End") },
404 { Qt::Key_Left, QT_TRANSLATE_NOOP(
"QShortcut",
"Left") },
405 { Qt::Key_Up, QT_TRANSLATE_NOOP(
"QShortcut",
"Up") },
406 { Qt::Key_Right, QT_TRANSLATE_NOOP(
"QShortcut",
"Right") },
407 { Qt::Key_Down, QT_TRANSLATE_NOOP(
"QShortcut",
"Down") },
408 { Qt::Key_PageUp, QT_TRANSLATE_NOOP(
"QShortcut",
"PgUp") },
409 { Qt::Key_PageDown, QT_TRANSLATE_NOOP(
"QShortcut",
"PgDown") },
410 { Qt::Key_CapsLock, QT_TRANSLATE_NOOP(
"QShortcut",
"CapsLock") },
411 { Qt::Key_NumLock, QT_TRANSLATE_NOOP(
"QShortcut",
"NumLock") },
412 { Qt::Key_ScrollLock, QT_TRANSLATE_NOOP(
"QShortcut",
"ScrollLock") },
413 { Qt::Key_Menu, QT_TRANSLATE_NOOP(
"QShortcut",
"Menu") },
414 { Qt::Key_Help, QT_TRANSLATE_NOOP(
"QShortcut",
"Help") },
419 { Qt::Key_Back, QT_TRANSLATE_NOOP(
"QShortcut",
"Back") },
420 { Qt::Key_Forward, QT_TRANSLATE_NOOP(
"QShortcut",
"Forward") },
421 { Qt::Key_Stop, QT_TRANSLATE_NOOP(
"QShortcut",
"Stop") },
422 { Qt::Key_Refresh, QT_TRANSLATE_NOOP(
"QShortcut",
"Refresh") },
423 { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Volume Down") },
424 { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP(
"QShortcut",
"Volume Mute") },
425 { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Volume Up") },
426 { Qt::Key_BassBoost, QT_TRANSLATE_NOOP(
"QShortcut",
"Bass Boost") },
427 { Qt::Key_BassUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Bass Up") },
428 { Qt::Key_BassDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Bass Down") },
429 { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Treble Up") },
430 { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Treble Down") },
431 { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Play") },
432 { Qt::Key_MediaStop, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Stop") },
433 { Qt::Key_MediaPrevious, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Previous") },
434 { Qt::Key_MediaNext, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Next") },
435 { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Record") },
437 { Qt::Key_MediaPause, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Pause") },
439 { Qt::Key_MediaTogglePlayPause, QT_TRANSLATE_NOOP(
"QShortcut",
"Toggle Media Play/Pause") },
440 { Qt::Key_HomePage, QT_TRANSLATE_NOOP(
"QShortcut",
"Home Page") },
441 { Qt::Key_Favorites, QT_TRANSLATE_NOOP(
"QShortcut",
"Favorites") },
442 { Qt::Key_Search, QT_TRANSLATE_NOOP(
"QShortcut",
"Search") },
443 { Qt::Key_Standby, QT_TRANSLATE_NOOP(
"QShortcut",
"Standby") },
444 { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP(
"QShortcut",
"Open URL") },
445 { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch Mail") },
446 { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch Media") },
447 { Qt::Key_Launch0, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (0)") },
448 { Qt::Key_Launch1, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (1)") },
449 { Qt::Key_Launch2, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (2)") },
450 { Qt::Key_Launch3, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (3)") },
451 { Qt::Key_Launch4, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (4)") },
452 { Qt::Key_Launch5, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (5)") },
453 { Qt::Key_Launch6, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (6)") },
454 { Qt::Key_Launch7, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (7)") },
455 { Qt::Key_Launch8, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (8)") },
456 { Qt::Key_Launch9, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (9)") },
457 { Qt::Key_LaunchA, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (A)") },
458 { Qt::Key_LaunchB, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (B)") },
459 { Qt::Key_LaunchC, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (C)") },
460 { Qt::Key_LaunchD, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (D)") },
461 { Qt::Key_LaunchE, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (E)") },
462 { Qt::Key_LaunchF, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (F)") },
463 { Qt::Key_LaunchG, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (G)") },
464 { Qt::Key_LaunchH, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (H)") },
465 { Qt::Key_MonBrightnessUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Monitor Brightness Up") },
466 { Qt::Key_MonBrightnessDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Monitor Brightness Down") },
467 { Qt::Key_KeyboardLightOnOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Light On/Off") },
468 { Qt::Key_KeyboardBrightnessUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Brightness Up") },
469 { Qt::Key_KeyboardBrightnessDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Brightness Down") },
470 { Qt::Key_PowerOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Power Off") },
471 { Qt::Key_WakeUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Wake Up") },
472 { Qt::Key_Eject, QT_TRANSLATE_NOOP(
"QShortcut",
"Eject") },
473 { Qt::Key_ScreenSaver, QT_TRANSLATE_NOOP(
"QShortcut",
"Screensaver") },
474 { Qt::Key_WWW, QT_TRANSLATE_NOOP(
"QShortcut",
"WWW") },
475 { Qt::Key_Sleep, QT_TRANSLATE_NOOP(
"QShortcut",
"Sleep") },
476 { Qt::Key_LightBulb, QT_TRANSLATE_NOOP(
"QShortcut",
"LightBulb") },
477 { Qt::Key_Shop, QT_TRANSLATE_NOOP(
"QShortcut",
"Shop") },
478 { Qt::Key_History, QT_TRANSLATE_NOOP(
"QShortcut",
"History") },
479 { Qt::Key_AddFavorite, QT_TRANSLATE_NOOP(
"QShortcut",
"Add Favorite") },
480 { Qt::Key_HotLinks, QT_TRANSLATE_NOOP(
"QShortcut",
"Hot Links") },
481 { Qt::Key_BrightnessAdjust, QT_TRANSLATE_NOOP(
"QShortcut",
"Adjust Brightness") },
482 { Qt::Key_Finance, QT_TRANSLATE_NOOP(
"QShortcut",
"Finance") },
483 { Qt::Key_Community, QT_TRANSLATE_NOOP(
"QShortcut",
"Community") },
484 { Qt::Key_AudioRewind, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Rewind") },
485 { Qt::Key_BackForward, QT_TRANSLATE_NOOP(
"QShortcut",
"Back Forward") },
486 { Qt::Key_ApplicationLeft, QT_TRANSLATE_NOOP(
"QShortcut",
"Application Left") },
487 { Qt::Key_ApplicationRight, QT_TRANSLATE_NOOP(
"QShortcut",
"Application Right") },
488 { Qt::Key_Book, QT_TRANSLATE_NOOP(
"QShortcut",
"Book") },
489 { Qt::Key_CD, QT_TRANSLATE_NOOP(
"QShortcut",
"CD") },
490 { Qt::Key_Calculator, QT_TRANSLATE_NOOP(
"QShortcut",
"Calculator") },
491 { Qt::Key_Calendar, QT_TRANSLATE_NOOP(
"QShortcut",
"Calendar") },
492 { Qt::Key_Clear, QT_TRANSLATE_NOOP(
"QShortcut",
"Clear") },
493 { Qt::Key_ClearGrab, QT_TRANSLATE_NOOP(
"QShortcut",
"Clear Grab") },
494 { Qt::Key_Close, QT_TRANSLATE_NOOP(
"QShortcut",
"Close") },
495 { Qt::Key_ContrastAdjust, QT_TRANSLATE_NOOP(
"QShortcut",
"Adjust contrast") },
496 { Qt::Key_Copy, QT_TRANSLATE_NOOP(
"QShortcut",
"Copy") },
497 { Qt::Key_Cut, QT_TRANSLATE_NOOP(
"QShortcut",
"Cut") },
498 { Qt::Key_Display, QT_TRANSLATE_NOOP(
"QShortcut",
"Display") },
499 { Qt::Key_DOS, QT_TRANSLATE_NOOP(
"QShortcut",
"DOS") },
500 { Qt::Key_Documents, QT_TRANSLATE_NOOP(
"QShortcut",
"Documents") },
501 { Qt::Key_Excel, QT_TRANSLATE_NOOP(
"QShortcut",
"Spreadsheet") },
502 { Qt::Key_Explorer, QT_TRANSLATE_NOOP(
"QShortcut",
"Browser") },
503 { Qt::Key_Game, QT_TRANSLATE_NOOP(
"QShortcut",
"Game") },
504 { Qt::Key_Go, QT_TRANSLATE_NOOP(
"QShortcut",
"Go") },
505 { Qt::Key_iTouch, QT_TRANSLATE_NOOP(
"QShortcut",
"iTouch") },
506 { Qt::Key_LogOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Logoff") },
507 { Qt::Key_Market, QT_TRANSLATE_NOOP(
"QShortcut",
"Market") },
508 { Qt::Key_Meeting, QT_TRANSLATE_NOOP(
"QShortcut",
"Meeting") },
509 { Qt::Key_Memo, QT_TRANSLATE_NOOP(
"QShortcut",
"Memo") },
510 { Qt::Key_MenuKB, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Menu") },
511 { Qt::Key_MenuPB, QT_TRANSLATE_NOOP(
"QShortcut",
"Menu PB") },
512 { Qt::Key_MySites, QT_TRANSLATE_NOOP(
"QShortcut",
"My Sites") },
513 { Qt::Key_News, QT_TRANSLATE_NOOP(
"QShortcut",
"News") },
514 { Qt::Key_OfficeHome, QT_TRANSLATE_NOOP(
"QShortcut",
"Home Office") },
515 { Qt::Key_Option, QT_TRANSLATE_NOOP(
"QShortcut",
"Option") },
516 { Qt::Key_Paste, QT_TRANSLATE_NOOP(
"QShortcut",
"Paste") },
517 { Qt::Key_Phone, QT_TRANSLATE_NOOP(
"QShortcut",
"Phone") },
518 { Qt::Key_Reply, QT_TRANSLATE_NOOP(
"QShortcut",
"Reply") },
519 { Qt::Key_Reload, QT_TRANSLATE_NOOP(
"QShortcut",
"Reload") },
520 { Qt::Key_RotateWindows, QT_TRANSLATE_NOOP(
"QShortcut",
"Rotate Windows") },
521 { Qt::Key_RotationPB, QT_TRANSLATE_NOOP(
"QShortcut",
"Rotation PB") },
522 { Qt::Key_RotationKB, QT_TRANSLATE_NOOP(
"QShortcut",
"Rotation KB") },
523 { Qt::Key_Save, QT_TRANSLATE_NOOP(
"QShortcut",
"Save") },
524 { Qt::Key_Send, QT_TRANSLATE_NOOP(
"QShortcut",
"Send") },
525 { Qt::Key_Spell, QT_TRANSLATE_NOOP(
"QShortcut",
"Spellchecker") },
526 { Qt::Key_SplitScreen, QT_TRANSLATE_NOOP(
"QShortcut",
"Split Screen") },
527 { Qt::Key_Support, QT_TRANSLATE_NOOP(
"QShortcut",
"Support") },
528 { Qt::Key_TaskPane, QT_TRANSLATE_NOOP(
"QShortcut",
"Task Panel") },
529 { Qt::Key_Terminal, QT_TRANSLATE_NOOP(
"QShortcut",
"Terminal") },
530 { Qt::Key_ToDoList, QT_TRANSLATE_NOOP(
"QShortcut",
"To-do list") },
531 { Qt::Key_Tools, QT_TRANSLATE_NOOP(
"QShortcut",
"Tools") },
532 { Qt::Key_Travel, QT_TRANSLATE_NOOP(
"QShortcut",
"Travel") },
533 { Qt::Key_Video, QT_TRANSLATE_NOOP(
"QShortcut",
"Video") },
534 { Qt::Key_Word, QT_TRANSLATE_NOOP(
"QShortcut",
"Word Processor") },
535 { Qt::Key_Xfer, QT_TRANSLATE_NOOP(
"QShortcut",
"XFer") },
536 { Qt::Key_ZoomIn, QT_TRANSLATE_NOOP(
"QShortcut",
"Zoom In") },
537 { Qt::Key_ZoomOut, QT_TRANSLATE_NOOP(
"QShortcut",
"Zoom Out") },
538 { Qt::Key_Away, QT_TRANSLATE_NOOP(
"QShortcut",
"Away") },
539 { Qt::Key_Messenger, QT_TRANSLATE_NOOP(
"QShortcut",
"Messenger") },
540 { Qt::Key_WebCam, QT_TRANSLATE_NOOP(
"QShortcut",
"WebCam") },
541 { Qt::Key_MailForward, QT_TRANSLATE_NOOP(
"QShortcut",
"Mail Forward") },
542 { Qt::Key_Pictures, QT_TRANSLATE_NOOP(
"QShortcut",
"Pictures") },
543 { Qt::Key_Music, QT_TRANSLATE_NOOP(
"QShortcut",
"Music") },
544 { Qt::Key_Battery, QT_TRANSLATE_NOOP(
"QShortcut",
"Battery") },
545 { Qt::Key_Bluetooth, QT_TRANSLATE_NOOP(
"QShortcut",
"Bluetooth") },
546 { Qt::Key_WLAN, QT_TRANSLATE_NOOP(
"QShortcut",
"Wireless") },
547 { Qt::Key_UWB, QT_TRANSLATE_NOOP(
"QShortcut",
"Ultra Wide Band") },
548 { Qt::Key_AudioForward, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Fast Forward") },
549 { Qt::Key_AudioRepeat, QT_TRANSLATE_NOOP(
"QShortcut",
"Audio Repeat") },
550 { Qt::Key_AudioRandomPlay, QT_TRANSLATE_NOOP(
"QShortcut",
"Audio Random Play") },
551 { Qt::Key_Subtitle, QT_TRANSLATE_NOOP(
"QShortcut",
"Subtitle") },
552 { Qt::Key_AudioCycleTrack, QT_TRANSLATE_NOOP(
"QShortcut",
"Audio Cycle Track") },
553 { Qt::Key_Time, QT_TRANSLATE_NOOP(
"QShortcut",
"Time") },
554 { Qt::Key_Hibernate, QT_TRANSLATE_NOOP(
"QShortcut",
"Hibernate") },
555 { Qt::Key_View, QT_TRANSLATE_NOOP(
"QShortcut",
"View") },
556 { Qt::Key_TopMenu, QT_TRANSLATE_NOOP(
"QShortcut",
"Top Menu") },
557 { Qt::Key_PowerDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Power Down") },
558 { Qt::Key_Suspend, QT_TRANSLATE_NOOP(
"QShortcut",
"Suspend") },
560 { Qt::Key_MicMute, QT_TRANSLATE_NOOP(
"QShortcut",
"Microphone Mute") },
562 { Qt::Key_Red, QT_TRANSLATE_NOOP(
"QShortcut",
"Red") },
563 { Qt::Key_Green, QT_TRANSLATE_NOOP(
"QShortcut",
"Green") },
564 { Qt::Key_Yellow, QT_TRANSLATE_NOOP(
"QShortcut",
"Yellow") },
565 { Qt::Key_Blue, QT_TRANSLATE_NOOP(
"QShortcut",
"Blue") },
567 { Qt::Key_ChannelUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Channel Up") },
568 { Qt::Key_ChannelDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Channel Down") },
570 { Qt::Key_Guide, QT_TRANSLATE_NOOP(
"QShortcut",
"Guide") },
571 { Qt::Key_Info, QT_TRANSLATE_NOOP(
"QShortcut",
"Info") },
572 { Qt::Key_Settings, QT_TRANSLATE_NOOP(
"QShortcut",
"Settings") },
574 { Qt::Key_MicVolumeUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Microphone Volume Up") },
575 { Qt::Key_MicVolumeDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Microphone Volume Down") },
577 { Qt::Key_Keyboard, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard") },
579 { Qt::Key_New, QT_TRANSLATE_NOOP(
"QShortcut",
"New") },
580 { Qt::Key_Open, QT_TRANSLATE_NOOP(
"QShortcut",
"Open") },
581 { Qt::Key_Find, QT_TRANSLATE_NOOP(
"QShortcut",
"Find") },
582 { Qt::Key_Undo, QT_TRANSLATE_NOOP(
"QShortcut",
"Undo") },
583 { Qt::Key_Redo, QT_TRANSLATE_NOOP(
"QShortcut",
"Redo") },
587 { Qt::Key_Print, QT_TRANSLATE_NOOP(
"QShortcut",
"Print Screen") },
588 { Qt::Key_PageUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Page Up") },
589 { Qt::Key_PageDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Page Down") },
590 { Qt::Key_CapsLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Caps Lock") },
591 { Qt::Key_NumLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Num Lock") },
592 { Qt::Key_NumLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Number Lock") },
593 { Qt::Key_ScrollLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Scroll Lock") },
594 { Qt::Key_Insert, QT_TRANSLATE_NOOP(
"QShortcut",
"Insert") },
595 { Qt::Key_Delete, QT_TRANSLATE_NOOP(
"QShortcut",
"Delete") },
596 { Qt::Key_Escape, QT_TRANSLATE_NOOP(
"QShortcut",
"Escape") },
597 { Qt::Key_SysReq, QT_TRANSLATE_NOOP(
"QShortcut",
"System Request") },
601 { Qt::Key_Select, QT_TRANSLATE_NOOP(
"QShortcut",
"Select") },
602 { Qt::Key_Yes, QT_TRANSLATE_NOOP(
"QShortcut",
"Yes") },
603 { Qt::Key_No, QT_TRANSLATE_NOOP(
"QShortcut",
"No") },
607 { Qt::Key_Context1, QT_TRANSLATE_NOOP(
"QShortcut",
"Context1") },
608 { Qt::Key_Context2, QT_TRANSLATE_NOOP(
"QShortcut",
"Context2") },
609 { Qt::Key_Context3, QT_TRANSLATE_NOOP(
"QShortcut",
"Context3") },
610 { Qt::Key_Context4, QT_TRANSLATE_NOOP(
"QShortcut",
"Context4") },
612 { Qt::Key_Call, QT_TRANSLATE_NOOP(
"QShortcut",
"Call") },
614 { Qt::Key_Hangup, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangup") },
616 { Qt::Key_ToggleCallHangup, QT_TRANSLATE_NOOP(
"QShortcut",
"Toggle Call/Hangup") },
617 { Qt::Key_Flip, QT_TRANSLATE_NOOP(
"QShortcut",
"Flip") },
619 { Qt::Key_VoiceDial, QT_TRANSLATE_NOOP(
"QShortcut",
"Voice Dial") },
621 { Qt::Key_LastNumberRedial, QT_TRANSLATE_NOOP(
"QShortcut",
"Last Number Redial") },
623 { Qt::Key_Camera, QT_TRANSLATE_NOOP(
"QShortcut",
"Camera Shutter") },
625 { Qt::Key_CameraFocus, QT_TRANSLATE_NOOP(
"QShortcut",
"Camera Focus") },
629 { Qt::Key_Kanji, QT_TRANSLATE_NOOP(
"QShortcut",
"Kanji") },
630 { Qt::Key_Muhenkan, QT_TRANSLATE_NOOP(
"QShortcut",
"Muhenkan") },
631 { Qt::Key_Henkan, QT_TRANSLATE_NOOP(
"QShortcut",
"Henkan") },
632 { Qt::Key_Romaji, QT_TRANSLATE_NOOP(
"QShortcut",
"Romaji") },
633 { Qt::Key_Hiragana, QT_TRANSLATE_NOOP(
"QShortcut",
"Hiragana") },
634 { Qt::Key_Katakana, QT_TRANSLATE_NOOP(
"QShortcut",
"Katakana") },
635 { Qt::Key_Hiragana_Katakana,QT_TRANSLATE_NOOP(
"QShortcut",
"Hiragana Katakana") },
636 { Qt::Key_Zenkaku, QT_TRANSLATE_NOOP(
"QShortcut",
"Zenkaku") },
637 { Qt::Key_Hankaku, QT_TRANSLATE_NOOP(
"QShortcut",
"Hankaku") },
638 { Qt::Key_Zenkaku_Hankaku, QT_TRANSLATE_NOOP(
"QShortcut",
"Zenkaku Hankaku") },
639 { Qt::Key_Touroku, QT_TRANSLATE_NOOP(
"QShortcut",
"Touroku") },
640 { Qt::Key_Massyo, QT_TRANSLATE_NOOP(
"QShortcut",
"Massyo") },
641 { Qt::Key_Kana_Lock, QT_TRANSLATE_NOOP(
"QShortcut",
"Kana Lock") },
642 { Qt::Key_Kana_Shift, QT_TRANSLATE_NOOP(
"QShortcut",
"Kana Shift") },
643 { Qt::Key_Eisu_Shift, QT_TRANSLATE_NOOP(
"QShortcut",
"Eisu Shift") },
644 { Qt::Key_Eisu_toggle, QT_TRANSLATE_NOOP(
"QShortcut",
"Eisu toggle") },
645 { Qt::Key_Codeinput, QT_TRANSLATE_NOOP(
"QShortcut",
"Code input") },
646 { Qt::Key_MultipleCandidate,QT_TRANSLATE_NOOP(
"QShortcut",
"Multiple Candidate") },
647 { Qt::Key_PreviousCandidate,QT_TRANSLATE_NOOP(
"QShortcut",
"Previous Candidate") },
651 { Qt::Key_Hangul, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul") },
652 { Qt::Key_Hangul_Start, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Start") },
653 { Qt::Key_Hangul_End, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul End") },
654 { Qt::Key_Hangul_Hanja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Hanja") },
655 { Qt::Key_Hangul_Jamo, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Jamo") },
656 { Qt::Key_Hangul_Romaja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Romaja") },
657 { Qt::Key_Hangul_Jeonja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Jeonja") },
658 { Qt::Key_Hangul_Banja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Banja") },
659 { Qt::Key_Hangul_PreHanja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul PreHanja") },
660 { Qt::Key_Hangul_PostHanja,QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul PostHanja") },
661 { Qt::Key_Hangul_Special, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Special") },
665 { Qt::Key_Cancel, QT_TRANSLATE_NOOP(
"QShortcut",
"Cancel") },
666 { Qt::Key_Printer, QT_TRANSLATE_NOOP(
"QShortcut",
"Printer") },
667 { Qt::Key_Execute, QT_TRANSLATE_NOOP(
"QShortcut",
"Execute") },
668 { Qt::Key_Play, QT_TRANSLATE_NOOP(
"QShortcut",
"Play") },
669 { Qt::Key_Zoom, QT_TRANSLATE_NOOP(
"QShortcut",
"Zoom") },
670 { Qt::Key_Exit, QT_TRANSLATE_NOOP(
"QShortcut",
"Exit") },
671 { Qt::Key_TouchpadToggle, QT_TRANSLATE_NOOP(
"QShortcut",
"Touchpad Toggle") },
672 { Qt::Key_TouchpadOn, QT_TRANSLATE_NOOP(
"QShortcut",
"Touchpad On") },
673 { Qt::Key_TouchpadOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Touchpad Off") },
674 { Qt::Key_Shift, QT_TRANSLATE_NOOP(
"QShortcut",
"Shift") },
675 { Qt::Key_Control, QT_TRANSLATE_NOOP(
"QShortcut",
"Control") },
676 { Qt::Key_Alt, QT_TRANSLATE_NOOP(
"QShortcut",
"Alt") },
677 { Qt::Key_Meta, QT_TRANSLATE_NOOP(
"QShortcut",
"Meta") },
680static constexpr int numKeyNames =
sizeof keyname /
sizeof *keyname;
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
766
767
768
769
770
771
774
775
776
777
778
779
780
781
782QKeySequence::QKeySequence(StandardKey key)
784 const QList <QKeySequence> bindings = keyBindings(key);
786 if (!bindings.isEmpty()) {
787 d = bindings.constFirst().d;
791 d =
new QKeySequencePrivate();
796
797
798QKeySequence::QKeySequence()
800 Q_CONSTINIT
static QKeySequencePrivate shared_empty;
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824QKeySequence::QKeySequence(
const QString &key, QKeySequence::SequenceFormat format)
826 d =
new QKeySequencePrivate();
832
833
834
835
836
837
838
839QKeySequence::QKeySequence(
int k1,
int k2,
int k3,
int k4)
841 d =
new QKeySequencePrivate();
849
850
851
852
853
854QKeySequence::QKeySequence(QKeyCombination k1, QKeyCombination k2, QKeyCombination k3, QKeyCombination k4)
855 : QKeySequence(k1.toCombined(), k2.toCombined(), k3.toCombined(), k4.toCombined())
860
861
862QKeySequence::QKeySequence(
const QKeySequence& keysequence)
869
870
871
872
873
874
875
876
877QList<QKeySequence> QKeySequence::keyBindings(StandardKey key)
879 return QGuiApplicationPrivate::platformTheme()->keyBindings(key);
883
884
885QKeySequence::~QKeySequence()
892
893
894
895
896
898void QKeySequence::setKey(QKeyCombination key,
int index)
900 Q_ASSERT_X(index >= 0 && index < QKeySequencePrivate::MaxKeyCount,
"QKeySequence::setKey",
"index out of range");
902 d->key[index] = key.toCombined();
907
908
909
910int QKeySequence::count()
const
912 return int(std::distance(d->key, std::find(d->key, d->key + QKeySequencePrivate::MaxKeyCount, 0)));
917
918
919
920bool QKeySequence::isEmpty()
const
927
928
929
930
931
932
933
934QKeySequence QKeySequence::mnemonic(
const QString &text)
938 if (qt_sequence_no_mnemonics)
944 p = text.indexOf(u'&', p) + 1;
945 if (p <= 0 || p >= (
int)text.size())
947 if (text.at(p) != u'&') {
948 QChar c = text.at(p);
952 ret = QKeySequence(QKeyCombination(Qt::ALT, Qt::Key(c.unicode())));
958 qWarning(
"QKeySequence::mnemonic: \"%s\" contains multiple occurrences of '&'", qPrintable(text));
969
970
971
972
973
974
975
976
977int QKeySequence::assign(
const QString &ks)
979 return assign(ks, NativeText);
983
984
985
986
987
988
989
990
991int QKeySequence::assign(
const QString &ks, QKeySequence::SequenceFormat format)
995 qsizetype p = 0, diff = 0;
999 while (keyseq.size() && n < QKeySequencePrivate::MaxKeyCount) {
1003 p = keyseq.indexOf(u',');
1005 if (p == keyseq.size() - 1) {
1008 if (u',' == keyseq.at(p+1))
1010 if (u' ' == keyseq.at(p+1)) {
1018 QString part = keyseq.left(-1 == p ? keyseq.size() : p - diff);
1019 keyseq = keyseq.right(-1 == p ? 0 : keyseq.size() - (p + 1));
1020 d->key[n] = QKeySequencePrivate::decodeString(std::move(part), format).toCombined();
1035Q_GLOBAL_STATIC(QList<QModifKeyName>, globalModifs)
1036Q_GLOBAL_STATIC(QList<QModifKeyName>, globalPortableModifs)
1038QKeyCombination QKeySequencePrivate::decodeString(QString accel, QKeySequence::SequenceFormat format)
1040 Q_ASSERT(!accel.isEmpty());
1043 accel = std::move(accel).toLower();
1044 bool nativeText = (format == QKeySequence::NativeText);
1046 QList<QModifKeyName> *gmodifs;
1048 gmodifs = globalModifs();
1049 if (gmodifs->isEmpty()) {
1050#if defined(Q_OS_APPLE)
1051 const bool dontSwap = qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta);
1053 *gmodifs << QModifKeyName(Qt::META, QChar(kCommandUnicode));
1055 *gmodifs << QModifKeyName(Qt::CTRL, QChar(kCommandUnicode));
1056 *gmodifs << QModifKeyName(Qt::ALT, QChar(kOptionUnicode));
1058 *gmodifs << QModifKeyName(Qt::CTRL, QChar(kControlUnicode));
1060 *gmodifs << QModifKeyName(Qt::META, QChar(kControlUnicode));
1061 *gmodifs << QModifKeyName(Qt::SHIFT, QChar(kShiftUnicode));
1063 *gmodifs << QModifKeyName(Qt::CTRL, u"ctrl+"_s)
1064 << QModifKeyName(Qt::SHIFT, u"shift+"_s)
1065 << QModifKeyName(Qt::ALT, u"alt+"_s)
1066 << QModifKeyName(Qt::META, u"meta+"_s)
1067 << QModifKeyName(Qt::KeypadModifier, u"num+"_s);
1070 gmodifs = globalPortableModifs();
1071 if (gmodifs->isEmpty()) {
1072 *gmodifs << QModifKeyName(Qt::CTRL, u"ctrl+"_s)
1073 << QModifKeyName(Qt::SHIFT, u"shift+"_s)
1074 << QModifKeyName(Qt::ALT, u"alt+"_s)
1075 << QModifKeyName(Qt::META, u"meta+"_s)
1076 << QModifKeyName(Qt::KeypadModifier, u"num+"_s);
1081 QList<QModifKeyName> modifs;
1083 modifs << QModifKeyName(Qt::CTRL, QCoreApplication::translate(
"QShortcut",
"Ctrl").toLower().append(u'+'))
1084 << QModifKeyName(Qt::SHIFT, QCoreApplication::translate(
"QShortcut",
"Shift").toLower().append(u'+'))
1085 << QModifKeyName(Qt::ALT, QCoreApplication::translate(
"QShortcut",
"Alt").toLower().append(u'+'))
1086 << QModifKeyName(Qt::META, QCoreApplication::translate(
"QShortcut",
"Meta").toLower().append(u'+'))
1087 << QModifKeyName(Qt::KeypadModifier, QCoreApplication::translate(
"QShortcut",
"Num").toLower().append(u'+'));
1092#if defined(Q_OS_APPLE)
1093 for (
int i = 0; i < modifs.size(); ++i) {
1094 const QModifKeyName &mkf = modifs.at(i);
1095 if (sl.contains(mkf.name)) {
1097 accel.remove(mkf.name);
1101 if (accel.isEmpty())
1102 return Qt::Key_unknown;
1105 int singlePlus = -1;
1107 qsizetype lastI = 0;
1108 while ((i = sl.indexOf(u'+', i + 1)) != -1) {
1109 QStringView sub = QStringView{ sl }.mid(lastI, i - lastI + 1);
1110 while (sub.size() > 1 && sub.at(0) == u' ') {
1124 if (sub.size() == 1) {
1126 if (singlePlus >= 0)
1127 return Qt::Key_unknown;
1131 const auto identifyModifier = [&](QStringView sub) {
1132 for (
int j = 0; j < modifs.size(); ++j) {
1133 const QModifKeyName &mkf = modifs.at(j);
1134 if (sub == mkf.name) {
1142 bool validModifier = identifyModifier(sub);
1144 if (!validModifier) {
1146 const QString cleanedSub = sub.toString().remove(u' ');
1147 validModifier = identifyModifier(cleanedSub);
1150 return Qt::Key_unknown;
1155 qsizetype p = accel.lastIndexOf(u'+', singlePlus > 0 ? singlePlus - 1 : accel.size() - 1);
1156 QStringView accelRef(accel);
1158 accelRef = accelRef.mid(p + 1);
1160 while (accelRef.size() > 1 && accelRef.at(0) == u' ')
1161 accelRef = accelRef.mid(1);
1162 while (accelRef.size() > 1 && accelRef.endsWith(u' '))
1166 if (accelRef.isEmpty())
1167 return Qt::Key_unknown;
1168 else if (accelRef.size() == 1) {
1169#if defined(Q_OS_APPLE)
1170 int qtKey = qtkeyForAppleSymbol(accelRef.at(0));
1176 ret |= accelRef.at(0).toUpper().unicode();
1178 }
else if (accelRef.at(0) == u'f' && (fnum = accelRef.mid(1).toInt()) >= 1 && fnum <= 35) {
1179 ret |= Qt::Key_F1 + fnum - 1;
1185 for (
int tran = 0; tran < 2; ++tran) {
1188 for (
int i = 0; i < numKeyNames; ++i) {
1189 QString keyName(tran == 0
1190 ? QCoreApplication::translate(
"QShortcut", keyname[i].name)
1191 : QString::fromLatin1(keyname[i].name));
1192 if (accelRef == std::move(keyName).toLower()) {
1193 ret |= keyname[i].key;
1203 return Qt::Key_unknown;
1205 return QKeyCombination::fromCombined(ret);
1208static inline void addKey(QString &str,
const QString &theKey, QKeySequence::SequenceFormat format)
1210 if (!str.isEmpty()) {
1211 if (format == QKeySequence::NativeText) {
1213 str += QCoreApplication::translate(
"QShortcut",
"+");
1222QString QKeySequencePrivate::encodeString(QKeyCombination keyCombination, QKeySequence::SequenceFormat format)
1224 bool nativeText = (format == QKeySequence::NativeText);
1227 const auto key = keyCombination.key();
1230 if (keyCombination.toCombined() == -1 || key == Qt::Key_unknown)
1233 const auto modifiers = keyCombination.keyboardModifiers();
1235#if defined(Q_OS_APPLE)
1243 static constexpr int ModifierOrder[] = { Qt::META, Qt::ALT, Qt::SHIFT, Qt::CTRL, 0 };
1244 static constexpr int QtKeyOrder[] = { Qt::Key_Meta, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Control, 0 };
1245 static constexpr int DontSwapModifierOrder[] = { Qt::CTRL, Qt::ALT, Qt::SHIFT, Qt::META, 0 };
1246 static constexpr int DontSwapQtKeyOrder[] = { Qt::Key_Control, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Meta, 0 };
1247 const int *modifierOrder;
1248 const int *qtkeyOrder;
1249 if (qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta)) {
1250 modifierOrder = DontSwapModifierOrder;
1251 qtkeyOrder = DontSwapQtKeyOrder;
1253 modifierOrder = ModifierOrder;
1254 qtkeyOrder = QtKeyOrder;
1257 for (
int i = 0; modifierOrder[i] != 0; ++i) {
1258 if (modifiers & modifierOrder[i])
1259 s += appleSymbolForQtKey(qtkeyOrder[i]);
1265 if (modifiers & Qt::MetaModifier)
1266 s = nativeText ? QCoreApplication::translate(
"QShortcut",
"Meta") : QString::fromLatin1(
"Meta");
1267 if (modifiers & Qt::ControlModifier)
1268 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Ctrl") : QString::fromLatin1(
"Ctrl"), format);
1269 if (modifiers & Qt::AltModifier)
1270 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Alt") : QString::fromLatin1(
"Alt"), format);
1271 if (modifiers & Qt::ShiftModifier)
1272 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Shift") : QString::fromLatin1(
"Shift"), format);
1274 if (modifiers & Qt::KeypadModifier)
1275 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Num") : QString::fromLatin1(
"Num"), format);
1277 QString keyName = QKeySequencePrivate::keyName(key, format);
1279#if defined(Q_OS_APPLE)
1284 addKey(s, keyName, format);
1289
1290
1291
1292
1293
1294
1295
1296QString QKeySequencePrivate::keyName(Qt::Key key, QKeySequence::SequenceFormat format)
1298 bool nativeText = (format == QKeySequence::NativeText);
1301 if (key && key < Qt::Key_Escape && key != Qt::Key_Space) {
1302 if (!QChar::requiresSurrogates(key)) {
1303 p = QChar::fromUcs2(key).toUpper();
1305 p += QChar(QChar::highSurrogate(key));
1306 p += QChar(QChar::lowSurrogate(key));
1308 }
else if (key >= Qt::Key_F1 && key <= Qt::Key_F35) {
1309 p = nativeText ? QCoreApplication::translate(
"QShortcut",
"F%1").arg(key - Qt::Key_F1 + 1)
1310 : QString::fromLatin1(
"F%1").arg(key - Qt::Key_F1 + 1);
1313#if defined(Q_OS_APPLE)
1315 QChar ch = appleSymbolForQtKey(key);
1323#if defined(Q_OS_APPLE)
1326 while (i < numKeyNames) {
1327 if (key == keyname[i].key) {
1328 p = nativeText ? QCoreApplication::translate(
"QShortcut", keyname[i].name)
1329 : QString::fromLatin1(keyname[i].name);
1338 if (i >= numKeyNames) {
1339 if (!QChar::requiresSurrogates(key)) {
1340 p = QChar::fromUcs2(key).toUpper();
1342 p += QChar(QChar::highSurrogate(key));
1343 p += QChar(QChar::lowSurrogate(key));
1351
1352
1353
1354
1355
1356QKeySequence::SequenceMatch QKeySequence::matches(
const QKeySequence &seq)
const
1358 uint userN = count(),
1366 SequenceMatch match = (userN == seqN ? ExactMatch : PartialMatch);
1368 for (uint i = 0; i < userN; ++i) {
1369 QKeyCombination userKey = (*
this)[i],
1370 sequenceKey = seq[i];
1371 if (userKey != sequenceKey)
1378
1379
1380QKeySequence::operator QVariant()
const
1382 return QVariant::fromValue(*
this);
1386
1387
1388
1389QKeyCombination QKeySequence::operator[](uint index)
const
1391 Q_ASSERT_X(index < QKeySequencePrivate::MaxKeyCount,
"QKeySequence::operator[]",
"index out of range");
1392 return QKeyCombination::fromCombined(d->key[index]);
1397
1398
1399
1400QKeySequence &QKeySequence::operator=(
const QKeySequence &other)
1402 qAtomicAssign(d, other.d);
1407
1408
1409
1410
1413
1414
1415
1416
1417
1421
1422
1423
1424bool QKeySequence::operator==(
const QKeySequence &other)
const
1426 return (d->key[0] == other.d->key[0] &&
1427 d->key[1] == other.d->key[1] &&
1428 d->key[2] == other.d->key[2] &&
1429 d->key[3] == other.d->key[3]);
1433
1434
1435
1436size_t qHash(
const QKeySequence &key, size_t seed)
noexcept
1438 return qHashRange(key.d->key, key.d->key + QKeySequencePrivate::MaxKeyCount, seed);