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
359
360
361
362
365
366
367
368
369
370
371
372
375
376
377
378
379
380
381
382
383
384
385
387static constexpr struct {
394 { Qt::Key_Space, QT_TRANSLATE_NOOP(
"QShortcut",
"Space") },
395 { Qt::Key_Escape, QT_TRANSLATE_NOOP(
"QShortcut",
"Esc") },
396 { Qt::Key_Tab, QT_TRANSLATE_NOOP(
"QShortcut",
"Tab") },
397 { Qt::Key_Backtab, QT_TRANSLATE_NOOP(
"QShortcut",
"Backtab") },
398 { Qt::Key_Backspace, QT_TRANSLATE_NOOP(
"QShortcut",
"Backspace") },
399 { Qt::Key_Return, QT_TRANSLATE_NOOP(
"QShortcut",
"Return") },
400 { Qt::Key_Enter, QT_TRANSLATE_NOOP(
"QShortcut",
"Enter") },
401 { Qt::Key_Insert, QT_TRANSLATE_NOOP(
"QShortcut",
"Ins") },
402 { Qt::Key_Delete, QT_TRANSLATE_NOOP(
"QShortcut",
"Del") },
403 { Qt::Key_Pause, QT_TRANSLATE_NOOP(
"QShortcut",
"Pause") },
404 { Qt::Key_Print, QT_TRANSLATE_NOOP(
"QShortcut",
"Print") },
405 { Qt::Key_SysReq, QT_TRANSLATE_NOOP(
"QShortcut",
"SysReq") },
406 { Qt::Key_Home, QT_TRANSLATE_NOOP(
"QShortcut",
"Home") },
407 { Qt::Key_End, QT_TRANSLATE_NOOP(
"QShortcut",
"End") },
408 { Qt::Key_Left, QT_TRANSLATE_NOOP(
"QShortcut",
"Left") },
409 { Qt::Key_Up, QT_TRANSLATE_NOOP(
"QShortcut",
"Up") },
410 { Qt::Key_Right, QT_TRANSLATE_NOOP(
"QShortcut",
"Right") },
411 { Qt::Key_Down, QT_TRANSLATE_NOOP(
"QShortcut",
"Down") },
412 { Qt::Key_PageUp, QT_TRANSLATE_NOOP(
"QShortcut",
"PgUp") },
413 { Qt::Key_PageDown, QT_TRANSLATE_NOOP(
"QShortcut",
"PgDown") },
414 { Qt::Key_CapsLock, QT_TRANSLATE_NOOP(
"QShortcut",
"CapsLock") },
415 { Qt::Key_NumLock, QT_TRANSLATE_NOOP(
"QShortcut",
"NumLock") },
416 { Qt::Key_ScrollLock, QT_TRANSLATE_NOOP(
"QShortcut",
"ScrollLock") },
417 { Qt::Key_Menu, QT_TRANSLATE_NOOP(
"QShortcut",
"Menu") },
418 { Qt::Key_Help, QT_TRANSLATE_NOOP(
"QShortcut",
"Help") },
423 { Qt::Key_Back, QT_TRANSLATE_NOOP(
"QShortcut",
"Back") },
424 { Qt::Key_Forward, QT_TRANSLATE_NOOP(
"QShortcut",
"Forward") },
425 { Qt::Key_Stop, QT_TRANSLATE_NOOP(
"QShortcut",
"Stop") },
426 { Qt::Key_Refresh, QT_TRANSLATE_NOOP(
"QShortcut",
"Refresh") },
427 { Qt::Key_VolumeDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Volume Down") },
428 { Qt::Key_VolumeMute, QT_TRANSLATE_NOOP(
"QShortcut",
"Volume Mute") },
429 { Qt::Key_VolumeUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Volume Up") },
430 { Qt::Key_BassBoost, QT_TRANSLATE_NOOP(
"QShortcut",
"Bass Boost") },
431 { Qt::Key_BassUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Bass Up") },
432 { Qt::Key_BassDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Bass Down") },
433 { Qt::Key_TrebleUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Treble Up") },
434 { Qt::Key_TrebleDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Treble Down") },
435 { Qt::Key_MediaPlay, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Play") },
436 { Qt::Key_MediaStop, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Stop") },
437 { Qt::Key_MediaPrevious, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Previous") },
438 { Qt::Key_MediaNext, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Next") },
439 { Qt::Key_MediaRecord, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Record") },
441 { Qt::Key_MediaPause, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Pause") },
443 { Qt::Key_MediaTogglePlayPause, QT_TRANSLATE_NOOP(
"QShortcut",
"Toggle Media Play/Pause") },
444 { Qt::Key_HomePage, QT_TRANSLATE_NOOP(
"QShortcut",
"Home Page") },
445 { Qt::Key_Favorites, QT_TRANSLATE_NOOP(
"QShortcut",
"Favorites") },
446 { Qt::Key_Search, QT_TRANSLATE_NOOP(
"QShortcut",
"Search") },
447 { Qt::Key_Standby, QT_TRANSLATE_NOOP(
"QShortcut",
"Standby") },
448 { Qt::Key_OpenUrl, QT_TRANSLATE_NOOP(
"QShortcut",
"Open URL") },
449 { Qt::Key_LaunchMail, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch Mail") },
450 { Qt::Key_LaunchMedia, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch Media") },
451 { Qt::Key_Launch0, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (0)") },
452 { Qt::Key_Launch1, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (1)") },
453 { Qt::Key_Launch2, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (2)") },
454 { Qt::Key_Launch3, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (3)") },
455 { Qt::Key_Launch4, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (4)") },
456 { Qt::Key_Launch5, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (5)") },
457 { Qt::Key_Launch6, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (6)") },
458 { Qt::Key_Launch7, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (7)") },
459 { Qt::Key_Launch8, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (8)") },
460 { Qt::Key_Launch9, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (9)") },
461 { Qt::Key_LaunchA, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (A)") },
462 { Qt::Key_LaunchB, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (B)") },
463 { Qt::Key_LaunchC, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (C)") },
464 { Qt::Key_LaunchD, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (D)") },
465 { Qt::Key_LaunchE, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (E)") },
466 { Qt::Key_LaunchF, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (F)") },
467 { Qt::Key_LaunchG, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (G)") },
468 { Qt::Key_LaunchH, QT_TRANSLATE_NOOP(
"QShortcut",
"Launch (H)") },
469 { Qt::Key_MonBrightnessUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Monitor Brightness Up") },
470 { Qt::Key_MonBrightnessDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Monitor Brightness Down") },
471 { Qt::Key_KeyboardLightOnOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Light On/Off") },
472 { Qt::Key_KeyboardBrightnessUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Brightness Up") },
473 { Qt::Key_KeyboardBrightnessDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Brightness Down") },
474 { Qt::Key_PowerOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Power Off") },
475 { Qt::Key_WakeUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Wake Up") },
476 { Qt::Key_Eject, QT_TRANSLATE_NOOP(
"QShortcut",
"Eject") },
477 { Qt::Key_ScreenSaver, QT_TRANSLATE_NOOP(
"QShortcut",
"Screensaver") },
478 { Qt::Key_WWW, QT_TRANSLATE_NOOP(
"QShortcut",
"WWW") },
479 { Qt::Key_Sleep, QT_TRANSLATE_NOOP(
"QShortcut",
"Sleep") },
480 { Qt::Key_LightBulb, QT_TRANSLATE_NOOP(
"QShortcut",
"LightBulb") },
481 { Qt::Key_Shop, QT_TRANSLATE_NOOP(
"QShortcut",
"Shop") },
482 { Qt::Key_History, QT_TRANSLATE_NOOP(
"QShortcut",
"History") },
483 { Qt::Key_AddFavorite, QT_TRANSLATE_NOOP(
"QShortcut",
"Add Favorite") },
484 { Qt::Key_HotLinks, QT_TRANSLATE_NOOP(
"QShortcut",
"Hot Links") },
485 { Qt::Key_BrightnessAdjust, QT_TRANSLATE_NOOP(
"QShortcut",
"Adjust Brightness") },
486 { Qt::Key_Finance, QT_TRANSLATE_NOOP(
"QShortcut",
"Finance") },
487 { Qt::Key_Community, QT_TRANSLATE_NOOP(
"QShortcut",
"Community") },
488 { Qt::Key_AudioRewind, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Rewind") },
489 { Qt::Key_BackForward, QT_TRANSLATE_NOOP(
"QShortcut",
"Back Forward") },
490 { Qt::Key_ApplicationLeft, QT_TRANSLATE_NOOP(
"QShortcut",
"Application Left") },
491 { Qt::Key_ApplicationRight, QT_TRANSLATE_NOOP(
"QShortcut",
"Application Right") },
492 { Qt::Key_Book, QT_TRANSLATE_NOOP(
"QShortcut",
"Book") },
493 { Qt::Key_CD, QT_TRANSLATE_NOOP(
"QShortcut",
"CD") },
494 { Qt::Key_Calculator, QT_TRANSLATE_NOOP(
"QShortcut",
"Calculator") },
495 { Qt::Key_Calendar, QT_TRANSLATE_NOOP(
"QShortcut",
"Calendar") },
496 { Qt::Key_Clear, QT_TRANSLATE_NOOP(
"QShortcut",
"Clear") },
497 { Qt::Key_ClearGrab, QT_TRANSLATE_NOOP(
"QShortcut",
"Clear Grab") },
498 { Qt::Key_Close, QT_TRANSLATE_NOOP(
"QShortcut",
"Close") },
499 { Qt::Key_ContrastAdjust, QT_TRANSLATE_NOOP(
"QShortcut",
"Adjust contrast") },
500 { Qt::Key_Copy, QT_TRANSLATE_NOOP(
"QShortcut",
"Copy") },
501 { Qt::Key_Cut, QT_TRANSLATE_NOOP(
"QShortcut",
"Cut") },
502 { Qt::Key_Display, QT_TRANSLATE_NOOP(
"QShortcut",
"Display") },
503 { Qt::Key_DOS, QT_TRANSLATE_NOOP(
"QShortcut",
"DOS") },
504 { Qt::Key_Documents, QT_TRANSLATE_NOOP(
"QShortcut",
"Documents") },
505 { Qt::Key_Excel, QT_TRANSLATE_NOOP(
"QShortcut",
"Spreadsheet") },
506 { Qt::Key_Explorer, QT_TRANSLATE_NOOP(
"QShortcut",
"Browser") },
507 { Qt::Key_Game, QT_TRANSLATE_NOOP(
"QShortcut",
"Game") },
508 { Qt::Key_Go, QT_TRANSLATE_NOOP(
"QShortcut",
"Go") },
509 { Qt::Key_iTouch, QT_TRANSLATE_NOOP(
"QShortcut",
"iTouch") },
510 { Qt::Key_LogOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Logoff") },
511 { Qt::Key_Market, QT_TRANSLATE_NOOP(
"QShortcut",
"Market") },
512 { Qt::Key_Meeting, QT_TRANSLATE_NOOP(
"QShortcut",
"Meeting") },
513 { Qt::Key_Memo, QT_TRANSLATE_NOOP(
"QShortcut",
"Memo") },
514 { Qt::Key_MenuKB, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard Menu") },
515 { Qt::Key_MenuPB, QT_TRANSLATE_NOOP(
"QShortcut",
"Menu PB") },
516 { Qt::Key_MySites, QT_TRANSLATE_NOOP(
"QShortcut",
"My Sites") },
517 { Qt::Key_News, QT_TRANSLATE_NOOP(
"QShortcut",
"News") },
518 { Qt::Key_OfficeHome, QT_TRANSLATE_NOOP(
"QShortcut",
"Home Office") },
519 { Qt::Key_Option, QT_TRANSLATE_NOOP(
"QShortcut",
"Option") },
520 { Qt::Key_Paste, QT_TRANSLATE_NOOP(
"QShortcut",
"Paste") },
521 { Qt::Key_Phone, QT_TRANSLATE_NOOP(
"QShortcut",
"Phone") },
522 { Qt::Key_Reply, QT_TRANSLATE_NOOP(
"QShortcut",
"Reply") },
523 { Qt::Key_Reload, QT_TRANSLATE_NOOP(
"QShortcut",
"Reload") },
524 { Qt::Key_RotateWindows, QT_TRANSLATE_NOOP(
"QShortcut",
"Rotate Windows") },
525 { Qt::Key_RotationPB, QT_TRANSLATE_NOOP(
"QShortcut",
"Rotation PB") },
526 { Qt::Key_RotationKB, QT_TRANSLATE_NOOP(
"QShortcut",
"Rotation KB") },
527 { Qt::Key_Save, QT_TRANSLATE_NOOP(
"QShortcut",
"Save") },
528 { Qt::Key_Send, QT_TRANSLATE_NOOP(
"QShortcut",
"Send") },
529 { Qt::Key_Spell, QT_TRANSLATE_NOOP(
"QShortcut",
"Spellchecker") },
530 { Qt::Key_SplitScreen, QT_TRANSLATE_NOOP(
"QShortcut",
"Split Screen") },
531 { Qt::Key_Support, QT_TRANSLATE_NOOP(
"QShortcut",
"Support") },
532 { Qt::Key_TaskPane, QT_TRANSLATE_NOOP(
"QShortcut",
"Task Panel") },
533 { Qt::Key_Terminal, QT_TRANSLATE_NOOP(
"QShortcut",
"Terminal") },
534 { Qt::Key_ToDoList, QT_TRANSLATE_NOOP(
"QShortcut",
"To-do list") },
535 { Qt::Key_Tools, QT_TRANSLATE_NOOP(
"QShortcut",
"Tools") },
536 { Qt::Key_Travel, QT_TRANSLATE_NOOP(
"QShortcut",
"Travel") },
537 { Qt::Key_Video, QT_TRANSLATE_NOOP(
"QShortcut",
"Video") },
538 { Qt::Key_Word, QT_TRANSLATE_NOOP(
"QShortcut",
"Word Processor") },
539 { Qt::Key_Xfer, QT_TRANSLATE_NOOP(
"QShortcut",
"XFer") },
540 { Qt::Key_ZoomIn, QT_TRANSLATE_NOOP(
"QShortcut",
"Zoom In") },
541 { Qt::Key_ZoomOut, QT_TRANSLATE_NOOP(
"QShortcut",
"Zoom Out") },
542 { Qt::Key_Away, QT_TRANSLATE_NOOP(
"QShortcut",
"Away") },
543 { Qt::Key_Messenger, QT_TRANSLATE_NOOP(
"QShortcut",
"Messenger") },
544 { Qt::Key_WebCam, QT_TRANSLATE_NOOP(
"QShortcut",
"WebCam") },
545 { Qt::Key_MailForward, QT_TRANSLATE_NOOP(
"QShortcut",
"Mail Forward") },
546 { Qt::Key_Pictures, QT_TRANSLATE_NOOP(
"QShortcut",
"Pictures") },
547 { Qt::Key_Music, QT_TRANSLATE_NOOP(
"QShortcut",
"Music") },
548 { Qt::Key_Battery, QT_TRANSLATE_NOOP(
"QShortcut",
"Battery") },
549 { Qt::Key_Bluetooth, QT_TRANSLATE_NOOP(
"QShortcut",
"Bluetooth") },
550 { Qt::Key_WLAN, QT_TRANSLATE_NOOP(
"QShortcut",
"Wireless") },
551 { Qt::Key_UWB, QT_TRANSLATE_NOOP(
"QShortcut",
"Ultra Wide Band") },
552 { Qt::Key_AudioForward, QT_TRANSLATE_NOOP(
"QShortcut",
"Media Fast Forward") },
553 { Qt::Key_AudioRepeat, QT_TRANSLATE_NOOP(
"QShortcut",
"Audio Repeat") },
554 { Qt::Key_AudioRandomPlay, QT_TRANSLATE_NOOP(
"QShortcut",
"Audio Random Play") },
555 { Qt::Key_Subtitle, QT_TRANSLATE_NOOP(
"QShortcut",
"Subtitle") },
556 { Qt::Key_AudioCycleTrack, QT_TRANSLATE_NOOP(
"QShortcut",
"Audio Cycle Track") },
557 { Qt::Key_Time, QT_TRANSLATE_NOOP(
"QShortcut",
"Time") },
558 { Qt::Key_Hibernate, QT_TRANSLATE_NOOP(
"QShortcut",
"Hibernate") },
559 { Qt::Key_View, QT_TRANSLATE_NOOP(
"QShortcut",
"View") },
560 { Qt::Key_TopMenu, QT_TRANSLATE_NOOP(
"QShortcut",
"Top Menu") },
561 { Qt::Key_PowerDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Power Down") },
562 { Qt::Key_Suspend, QT_TRANSLATE_NOOP(
"QShortcut",
"Suspend") },
564 { Qt::Key_MicMute, QT_TRANSLATE_NOOP(
"QShortcut",
"Microphone Mute") },
566 { Qt::Key_Red, QT_TRANSLATE_NOOP(
"QShortcut",
"Red") },
567 { Qt::Key_Green, QT_TRANSLATE_NOOP(
"QShortcut",
"Green") },
568 { Qt::Key_Yellow, QT_TRANSLATE_NOOP(
"QShortcut",
"Yellow") },
569 { Qt::Key_Blue, QT_TRANSLATE_NOOP(
"QShortcut",
"Blue") },
571 { Qt::Key_ChannelUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Channel Up") },
572 { Qt::Key_ChannelDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Channel Down") },
574 { Qt::Key_Guide, QT_TRANSLATE_NOOP(
"QShortcut",
"Guide") },
575 { Qt::Key_Info, QT_TRANSLATE_NOOP(
"QShortcut",
"Info") },
576 { Qt::Key_Settings, QT_TRANSLATE_NOOP(
"QShortcut",
"Settings") },
578 { Qt::Key_MicVolumeUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Microphone Volume Up") },
579 { Qt::Key_MicVolumeDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Microphone Volume Down") },
581 { Qt::Key_Keyboard, QT_TRANSLATE_NOOP(
"QShortcut",
"Keyboard") },
583 { Qt::Key_New, QT_TRANSLATE_NOOP(
"QShortcut",
"New") },
584 { Qt::Key_Open, QT_TRANSLATE_NOOP(
"QShortcut",
"Open") },
585 { Qt::Key_Find, QT_TRANSLATE_NOOP(
"QShortcut",
"Find") },
586 { Qt::Key_Undo, QT_TRANSLATE_NOOP(
"QShortcut",
"Undo") },
587 { Qt::Key_Redo, QT_TRANSLATE_NOOP(
"QShortcut",
"Redo") },
588 { Qt::Key_Assistant, QT_TRANSLATE_NOOP(
"QShortcut",
"Assistant") },
589 { Qt::Key_SelectiveScreenshot, QT_TRANSLATE_NOOP(
"QShortcut",
"Selective Screenshot") },
590 { Qt::Key_PerformanceMode, QT_TRANSLATE_NOOP(
"QShortcut",
"Performance Mode") },
594 { Qt::Key_Print, QT_TRANSLATE_NOOP(
"QShortcut",
"Print Screen") },
595 { Qt::Key_PageUp, QT_TRANSLATE_NOOP(
"QShortcut",
"Page Up") },
596 { Qt::Key_PageDown, QT_TRANSLATE_NOOP(
"QShortcut",
"Page Down") },
597 { Qt::Key_CapsLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Caps Lock") },
598 { Qt::Key_NumLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Num Lock") },
599 { Qt::Key_NumLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Number Lock") },
600 { Qt::Key_ScrollLock, QT_TRANSLATE_NOOP(
"QShortcut",
"Scroll Lock") },
601 { Qt::Key_Insert, QT_TRANSLATE_NOOP(
"QShortcut",
"Insert") },
602 { Qt::Key_Delete, QT_TRANSLATE_NOOP(
"QShortcut",
"Delete") },
603 { Qt::Key_Escape, QT_TRANSLATE_NOOP(
"QShortcut",
"Escape") },
604 { Qt::Key_SysReq, QT_TRANSLATE_NOOP(
"QShortcut",
"System Request") },
608 { Qt::Key_Select, QT_TRANSLATE_NOOP(
"QShortcut",
"Select") },
609 { Qt::Key_Yes, QT_TRANSLATE_NOOP(
"QShortcut",
"Yes") },
610 { Qt::Key_No, QT_TRANSLATE_NOOP(
"QShortcut",
"No") },
614 { Qt::Key_Context1, QT_TRANSLATE_NOOP(
"QShortcut",
"Context1") },
615 { Qt::Key_Context2, QT_TRANSLATE_NOOP(
"QShortcut",
"Context2") },
616 { Qt::Key_Context3, QT_TRANSLATE_NOOP(
"QShortcut",
"Context3") },
617 { Qt::Key_Context4, QT_TRANSLATE_NOOP(
"QShortcut",
"Context4") },
619 { Qt::Key_Call, QT_TRANSLATE_NOOP(
"QShortcut",
"Call") },
621 { Qt::Key_Hangup, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangup") },
623 { Qt::Key_ToggleCallHangup, QT_TRANSLATE_NOOP(
"QShortcut",
"Toggle Call/Hangup") },
624 { Qt::Key_Flip, QT_TRANSLATE_NOOP(
"QShortcut",
"Flip") },
626 { Qt::Key_VoiceDial, QT_TRANSLATE_NOOP(
"QShortcut",
"Voice Dial") },
628 { Qt::Key_LastNumberRedial, QT_TRANSLATE_NOOP(
"QShortcut",
"Last Number Redial") },
630 { Qt::Key_Camera, QT_TRANSLATE_NOOP(
"QShortcut",
"Camera Shutter") },
632 { Qt::Key_CameraFocus, QT_TRANSLATE_NOOP(
"QShortcut",
"Camera Focus") },
636 { Qt::Key_Kanji, QT_TRANSLATE_NOOP(
"QShortcut",
"Kanji") },
637 { Qt::Key_Muhenkan, QT_TRANSLATE_NOOP(
"QShortcut",
"Muhenkan") },
638 { Qt::Key_Henkan, QT_TRANSLATE_NOOP(
"QShortcut",
"Henkan") },
639 { Qt::Key_Romaji, QT_TRANSLATE_NOOP(
"QShortcut",
"Romaji") },
640 { Qt::Key_Hiragana, QT_TRANSLATE_NOOP(
"QShortcut",
"Hiragana") },
641 { Qt::Key_Katakana, QT_TRANSLATE_NOOP(
"QShortcut",
"Katakana") },
642 { Qt::Key_Hiragana_Katakana,QT_TRANSLATE_NOOP(
"QShortcut",
"Hiragana Katakana") },
643 { Qt::Key_Zenkaku, QT_TRANSLATE_NOOP(
"QShortcut",
"Zenkaku") },
644 { Qt::Key_Hankaku, QT_TRANSLATE_NOOP(
"QShortcut",
"Hankaku") },
645 { Qt::Key_Zenkaku_Hankaku, QT_TRANSLATE_NOOP(
"QShortcut",
"Zenkaku Hankaku") },
646 { Qt::Key_Touroku, QT_TRANSLATE_NOOP(
"QShortcut",
"Touroku") },
647 { Qt::Key_Massyo, QT_TRANSLATE_NOOP(
"QShortcut",
"Massyo") },
648 { Qt::Key_Kana_Lock, QT_TRANSLATE_NOOP(
"QShortcut",
"Kana Lock") },
649 { Qt::Key_Kana_Shift, QT_TRANSLATE_NOOP(
"QShortcut",
"Kana Shift") },
650 { Qt::Key_Eisu_Shift, QT_TRANSLATE_NOOP(
"QShortcut",
"Eisu Shift") },
651 { Qt::Key_Eisu_toggle, QT_TRANSLATE_NOOP(
"QShortcut",
"Eisu toggle") },
652 { Qt::Key_Codeinput, QT_TRANSLATE_NOOP(
"QShortcut",
"Code input") },
653 { Qt::Key_MultipleCandidate,QT_TRANSLATE_NOOP(
"QShortcut",
"Multiple Candidate") },
654 { Qt::Key_PreviousCandidate,QT_TRANSLATE_NOOP(
"QShortcut",
"Previous Candidate") },
658 { Qt::Key_Hangul, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul") },
659 { Qt::Key_Hangul_Start, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Start") },
660 { Qt::Key_Hangul_End, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul End") },
661 { Qt::Key_Hangul_Hanja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Hanja") },
662 { Qt::Key_Hangul_Jamo, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Jamo") },
663 { Qt::Key_Hangul_Romaja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Romaja") },
664 { Qt::Key_Hangul_Jeonja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Jeonja") },
665 { Qt::Key_Hangul_Banja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Banja") },
666 { Qt::Key_Hangul_PreHanja, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul PreHanja") },
667 { Qt::Key_Hangul_PostHanja,QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul PostHanja") },
668 { Qt::Key_Hangul_Special, QT_TRANSLATE_NOOP(
"QShortcut",
"Hangul Special") },
672 { Qt::Key_Cancel, QT_TRANSLATE_NOOP(
"QShortcut",
"Cancel") },
673 { Qt::Key_Printer, QT_TRANSLATE_NOOP(
"QShortcut",
"Printer") },
674 { Qt::Key_Execute, QT_TRANSLATE_NOOP(
"QShortcut",
"Execute") },
675 { Qt::Key_Play, QT_TRANSLATE_NOOP(
"QShortcut",
"Play") },
676 { Qt::Key_Zoom, QT_TRANSLATE_NOOP(
"QShortcut",
"Zoom") },
677 { Qt::Key_Exit, QT_TRANSLATE_NOOP(
"QShortcut",
"Exit") },
678 { Qt::Key_TouchpadToggle, QT_TRANSLATE_NOOP(
"QShortcut",
"Touchpad Toggle") },
679 { Qt::Key_TouchpadOn, QT_TRANSLATE_NOOP(
"QShortcut",
"Touchpad On") },
680 { Qt::Key_TouchpadOff, QT_TRANSLATE_NOOP(
"QShortcut",
"Touchpad Off") },
681 { Qt::Key_Shift, QT_TRANSLATE_NOOP(
"QShortcut",
"Shift") },
682 { Qt::Key_Control, QT_TRANSLATE_NOOP(
"QShortcut",
"Control") },
683 { Qt::Key_Alt, QT_TRANSLATE_NOOP(
"QShortcut",
"Alt") },
684 { Qt::Key_Meta, QT_TRANSLATE_NOOP(
"QShortcut",
"Meta") },
687static constexpr int numKeyNames =
sizeof keyname /
sizeof *keyname;
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
764
765
766
767
768
769
770
773
774
775
776
777
778
781
782
783
784
785
786
787
788
789QKeySequence::QKeySequence(StandardKey key)
791 const QList <QKeySequence> bindings = keyBindings(key);
793 if (!bindings.isEmpty()) {
794 d = bindings.constFirst().d;
798 d =
new QKeySequencePrivate();
803
804
805QKeySequence::QKeySequence()
807 Q_CONSTINIT
static QKeySequencePrivate shared_empty;
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831QKeySequence::QKeySequence(
const QString &key, QKeySequence::SequenceFormat format)
833 d =
new QKeySequencePrivate();
839
840
841
842
843
844
845
846QKeySequence::QKeySequence(
int k1,
int k2,
int k3,
int k4)
848 d =
new QKeySequencePrivate();
856
857
858
859
860
861QKeySequence::QKeySequence(QKeyCombination k1, QKeyCombination k2, QKeyCombination k3, QKeyCombination k4)
862 : QKeySequence(k1.toCombined(), k2.toCombined(), k3.toCombined(), k4.toCombined())
867
868
869QKeySequence::QKeySequence(
const QKeySequence& keysequence)
876
877
878
879
880
881
882
883
884QList<QKeySequence> QKeySequence::keyBindings(StandardKey key)
886 return QGuiApplicationPrivate::platformTheme()->keyBindings(key);
890
891
892QKeySequence::~QKeySequence()
899
900
901
902
903
905void QKeySequence::setKey(QKeyCombination key,
int index)
907 Q_ASSERT_X(index >= 0 && index < QKeySequencePrivate::MaxKeyCount,
"QKeySequence::setKey",
"index out of range");
909 d->key[index] = key.toCombined();
914
915
916
917int QKeySequence::count()
const
919 return int(std::distance(d->key, std::find(d->key, d->key + QKeySequencePrivate::MaxKeyCount, 0)));
924
925
926
927bool QKeySequence::isEmpty()
const
934
935
936
937
938
939
940
941QKeySequence QKeySequence::mnemonic(
const QString &text)
945 const bool mnemonicsEnabled = qt_sequence_auto_mnemonic_override.value_or(
946 QGuiApplicationPrivate::platformTheme()->themeHint(QPlatformTheme::MnemonicsEnabled).toBool());
947 if (!mnemonicsEnabled)
953 p = text.indexOf(u'&', p) + 1;
954 if (p <= 0 || p >= (
int)text.size())
956 if (text.at(p) != u'&') {
957 QChar c = text.at(p);
961 ret = QKeySequence(QKeyCombination(Qt::ALT, Qt::Key(c.unicode())));
967 qWarning(
"QKeySequence::mnemonic: \"%s\" contains multiple occurrences of '&'", qPrintable(text));
978
979
980
981
982
983
984
985
986int QKeySequence::assign(
const QString &ks)
988 return assign(ks, NativeText);
992
993
994
995
996
997
998
999
1000int QKeySequence::assign(
const QString &ks, QKeySequence::SequenceFormat format)
1002 QString keyseq = ks;
1004 qsizetype p = 0, diff = 0;
1008 while (keyseq.size() && n < QKeySequencePrivate::MaxKeyCount) {
1012 p = keyseq.indexOf(u',');
1014 if (p == keyseq.size() - 1) {
1017 if (u',' == keyseq.at(p+1))
1019 if (u' ' == keyseq.at(p+1)) {
1027 QString part = keyseq.left(-1 == p ? keyseq.size() : p - diff);
1028 keyseq = keyseq.right(-1 == p ? 0 : keyseq.size() - (p + 1));
1029 d->key[n] = QKeySequencePrivate::decodeString(std::move(part), format).toCombined();
1044Q_GLOBAL_STATIC(QList<QModifKeyName>, globalModifs)
1045Q_GLOBAL_STATIC(QList<QModifKeyName>, globalPortableModifs)
1047QKeyCombination QKeySequencePrivate::decodeString(QString accel, QKeySequence::SequenceFormat format)
1049 Q_ASSERT(!accel.isEmpty());
1052 accel = std::move(accel).toLower();
1053 bool nativeText = (format == QKeySequence::NativeText);
1055 QList<QModifKeyName> *gmodifs;
1057 gmodifs = globalModifs();
1058 if (gmodifs->isEmpty()) {
1059#if defined(Q_OS_APPLE)
1060 const bool dontSwap = qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta);
1062 *gmodifs << QModifKeyName(Qt::META, QChar(kCommandUnicode));
1064 *gmodifs << QModifKeyName(Qt::CTRL, QChar(kCommandUnicode));
1065 *gmodifs << QModifKeyName(Qt::ALT, QChar(kOptionUnicode));
1067 *gmodifs << QModifKeyName(Qt::CTRL, QChar(kControlUnicode));
1069 *gmodifs << QModifKeyName(Qt::META, QChar(kControlUnicode));
1070 *gmodifs << QModifKeyName(Qt::SHIFT, QChar(kShiftUnicode));
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);
1079 gmodifs = globalPortableModifs();
1080 if (gmodifs->isEmpty()) {
1081 *gmodifs << QModifKeyName(Qt::CTRL, u"ctrl+"_s)
1082 << QModifKeyName(Qt::SHIFT, u"shift+"_s)
1083 << QModifKeyName(Qt::ALT, u"alt+"_s)
1084 << QModifKeyName(Qt::META, u"meta+"_s)
1085 << QModifKeyName(Qt::KeypadModifier, u"num+"_s);
1090 QList<QModifKeyName> modifs;
1092 modifs << QModifKeyName(Qt::CTRL, QCoreApplication::translate(
"QShortcut",
"Ctrl").toLower().append(u'+'))
1093 << QModifKeyName(Qt::SHIFT, QCoreApplication::translate(
"QShortcut",
"Shift").toLower().append(u'+'))
1094 << QModifKeyName(Qt::ALT, QCoreApplication::translate(
"QShortcut",
"Alt").toLower().append(u'+'))
1095 << QModifKeyName(Qt::META, QCoreApplication::translate(
"QShortcut",
"Meta").toLower().append(u'+'))
1096 << QModifKeyName(Qt::KeypadModifier, QCoreApplication::translate(
"QShortcut",
"Num").toLower().append(u'+'));
1101#if defined(Q_OS_APPLE)
1102 for (
int i = 0; i < modifs.size(); ++i) {
1103 const QModifKeyName &mkf = modifs.at(i);
1104 if (sl.contains(mkf.name)) {
1106 accel.remove(mkf.name);
1110 if (accel.isEmpty())
1111 return Qt::Key_unknown;
1114 int singlePlus = -1;
1116 qsizetype lastI = 0;
1117 while ((i = sl.indexOf(u'+', i + 1)) != -1) {
1118 QStringView sub = QStringView{ sl }.mid(lastI, i - lastI + 1);
1119 while (sub.size() > 1 && sub.at(0) == u' ') {
1133 if (sub.size() == 1) {
1135 if (singlePlus >= 0)
1136 return Qt::Key_unknown;
1140 const auto identifyModifier = [&](QStringView sub) {
1141 for (
int j = 0; j < modifs.size(); ++j) {
1142 const QModifKeyName &mkf = modifs.at(j);
1143 if (sub == mkf.name) {
1151 bool validModifier = identifyModifier(sub);
1153 if (!validModifier) {
1155 const QString cleanedSub = sub.toString().remove(u' ');
1156 validModifier = identifyModifier(cleanedSub);
1159 return Qt::Key_unknown;
1164 qsizetype p = accel.lastIndexOf(u'+', singlePlus > 0 ? singlePlus - 1 : accel.size() - 1);
1165 QStringView accelRef(accel);
1167 accelRef = accelRef.mid(p + 1);
1169 while (accelRef.size() > 1 && accelRef.at(0) == u' ')
1170 accelRef = accelRef.mid(1);
1171 while (accelRef.size() > 1 && accelRef.endsWith(u' '))
1175 if (accelRef.isEmpty())
1176 return Qt::Key_unknown;
1177 else if (accelRef.size() == 1) {
1178#if defined(Q_OS_APPLE)
1179 int qtKey = qtkeyForAppleSymbol(accelRef.at(0));
1185 ret |= accelRef.at(0).toUpper().unicode();
1187 }
else if (accelRef.at(0) == u'f' && (fnum = accelRef.mid(1).toInt()) >= 1 && fnum <= 35) {
1188 ret |= Qt::Key_F1 + fnum - 1;
1194 for (
int tran = 0; tran < 2; ++tran) {
1197 for (
int i = 0; i < numKeyNames; ++i) {
1198 QString keyName(tran == 0
1199 ? QCoreApplication::translate(
"QShortcut", keyname[i].name)
1200 : QString::fromLatin1(keyname[i].name));
1201 if (accelRef == std::move(keyName).toLower()) {
1202 ret |= keyname[i].key;
1212 return Qt::Key_unknown;
1214 return QKeyCombination::fromCombined(ret);
1217static inline void addKey(QString &str,
const QString &theKey, QKeySequence::SequenceFormat format)
1219 if (!str.isEmpty()) {
1220 if (format == QKeySequence::NativeText) {
1222 str += QCoreApplication::translate(
"QShortcut",
"+");
1231QString QKeySequencePrivate::encodeString(QKeyCombination keyCombination, QKeySequence::SequenceFormat format)
1233 bool nativeText = (format == QKeySequence::NativeText);
1236 const auto key = keyCombination.key();
1239 if (keyCombination.toCombined() == -1 || key == Qt::Key_unknown)
1242 const auto modifiers = keyCombination.keyboardModifiers();
1244#if defined(Q_OS_APPLE)
1252 static constexpr int ModifierOrder[] = { Qt::META, Qt::ALT, Qt::SHIFT, Qt::CTRL, 0 };
1253 static constexpr int QtKeyOrder[] = { Qt::Key_Meta, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Control, 0 };
1254 static constexpr int DontSwapModifierOrder[] = { Qt::CTRL, Qt::ALT, Qt::SHIFT, Qt::META, 0 };
1255 static constexpr int DontSwapQtKeyOrder[] = { Qt::Key_Control, Qt::Key_Alt, Qt::Key_Shift, Qt::Key_Meta, 0 };
1256 const int *modifierOrder;
1257 const int *qtkeyOrder;
1258 if (qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta)) {
1259 modifierOrder = DontSwapModifierOrder;
1260 qtkeyOrder = DontSwapQtKeyOrder;
1262 modifierOrder = ModifierOrder;
1263 qtkeyOrder = QtKeyOrder;
1266 for (
int i = 0; modifierOrder[i] != 0; ++i) {
1267 if (modifiers & modifierOrder[i])
1268 s += appleSymbolForQtKey(qtkeyOrder[i]);
1274 if (modifiers & Qt::MetaModifier)
1275 s = nativeText ? QCoreApplication::translate(
"QShortcut",
"Meta") : QString::fromLatin1(
"Meta");
1276 if (modifiers & Qt::ControlModifier)
1277 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Ctrl") : QString::fromLatin1(
"Ctrl"), format);
1278 if (modifiers & Qt::AltModifier)
1279 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Alt") : QString::fromLatin1(
"Alt"), format);
1280 if (modifiers & Qt::ShiftModifier)
1281 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Shift") : QString::fromLatin1(
"Shift"), format);
1283 if (modifiers & Qt::KeypadModifier)
1284 addKey(s, nativeText ? QCoreApplication::translate(
"QShortcut",
"Num") : QString::fromLatin1(
"Num"), format);
1286 QString keyName = QKeySequencePrivate::keyName(key, format);
1288#if defined(Q_OS_APPLE)
1293 addKey(s, keyName, format);
1298
1299
1300
1301
1302
1303
1304
1305QString QKeySequencePrivate::keyName(Qt::Key key, QKeySequence::SequenceFormat format)
1307 bool nativeText = (format == QKeySequence::NativeText);
1310 if (nativeText && (key > 0x00 && key <= 0x1f)) {
1312 p = QChar::fromUcs2(0x2400 + key);
1313 }
else if (key && key < Qt::Key_Escape && key != Qt::Key_Space) {
1314 if (!QChar::requiresSurrogates(key)) {
1315 p = QChar::fromUcs2(key).toUpper();
1317 p += QChar(QChar::highSurrogate(key));
1318 p += QChar(QChar::lowSurrogate(key));
1320 }
else if (key >= Qt::Key_F1 && key <= Qt::Key_F35) {
1321 p = nativeText ? QCoreApplication::translate(
"QShortcut",
"F%1").arg(key - Qt::Key_F1 + 1)
1322 : QString::fromLatin1(
"F%1").arg(key - Qt::Key_F1 + 1);
1325#if defined(Q_OS_APPLE)
1327 QChar ch = appleSymbolForQtKey(key);
1335#if defined(Q_OS_APPLE)
1338 while (i < numKeyNames) {
1339 if (key == keyname[i].key) {
1340 p = nativeText ? QCoreApplication::translate(
"QShortcut", keyname[i].name)
1341 : QString::fromLatin1(keyname[i].name);
1350 if (i >= numKeyNames) {
1351 if (!QChar::requiresSurrogates(key)) {
1352 p = QChar::fromUcs2(key).toUpper();
1354 p += QChar(QChar::highSurrogate(key));
1355 p += QChar(QChar::lowSurrogate(key));
1363
1364
1365
1366
1367
1368QKeySequence::SequenceMatch QKeySequence::matches(
const QKeySequence &seq)
const
1370 uint userN = count(),
1378 SequenceMatch match = (userN == seqN ? ExactMatch : PartialMatch);
1380 for (uint i = 0; i < userN; ++i) {
1381 QKeyCombination userKey = (*
this)[i],
1382 sequenceKey = seq[i];
1383 if (userKey != sequenceKey)
1390
1391
1392QKeySequence::operator QVariant()
const
1394 return QVariant::fromValue(*
this);
1398
1399
1400
1401QKeyCombination QKeySequence::operator[](uint index)
const
1403 Q_ASSERT_X(index < QKeySequencePrivate::MaxKeyCount,
"QKeySequence::operator[]",
"index out of range");
1404 return QKeyCombination::fromCombined(d->key[index]);
1409
1410
1411
1412QKeySequence &QKeySequence::operator=(
const QKeySequence &other)
1414 qAtomicAssign(d, other.d);
1419
1420
1421
1422
1425
1426
1427
1428
1429
1433
1434
1435
1436bool QKeySequence::operator==(
const QKeySequence &other)
const
1438 return (d->key[0] == other.d->key[0] &&
1439 d->key[1] == other.d->key[1] &&
1440 d->key[2] == other.d->key[2] &&
1441 d->key[3] == other.d->key[3]);
1445
1446
1447
1448size_t qHash(
const QKeySequence &key, size_t seed)
noexcept
1450 return qHashRange(key.d->key, key.d->key + QKeySequencePrivate::MaxKeyCount, seed);