Changeset 79729 in vbox
- Timestamp:
- Jul 12, 2019 12:22:16 PM (5 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard
- Files:
-
- 2 edited
-
UISoftKeyboard.cpp (modified) (13 diffs)
-
UISoftKeyboard.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp
r79669 r79729 96 96 }; 97 97 98 struct KeyCaptions99 {100 QString m_strBase;101 QString m_strShift;102 QString m_strAltGr;103 QString m_strShiftAltGr;104 };105 106 98 enum KeyboardColorType 107 99 { … … 112 104 KeyboardColorType_Pressed, 113 105 KeyboardColorType_Max 106 }; 107 108 struct KeyCaptions 109 { 110 QString m_strBase; 111 QString m_strShift; 112 QString m_strAltGr; 113 QString m_strShiftAltGr; 114 }; 115 116 struct UsageCode 117 { 118 LONG usageId; 119 LONG usagePage; 120 bool fRelease; 114 121 }; 115 122 … … 327 334 void addScanCodePrefix(LONG scanCode); 328 335 const QVector<LONG> &scanCodePrefix() const; 336 337 void setUsageId(LONG usageId); 338 void setUsagePage(LONG usagePage); 339 QPair<LONG, LONG> usagePageIdPair() const; 329 340 330 341 void setSpaceWidthAfter(int iSpace); … … 391 402 int m_iPosition; 392 403 UISoftKeyboardWidget *m_pParentWidget; 404 405 LONG m_iUsageId; 406 LONG m_iUsagePage; 407 393 408 bool m_fIsNumPadKey; 394 409 bool m_fIsOSMenuKey; … … 509 524 void sigStatusBarMessage(const QString &strMessage); 510 525 void sigPutKeyboardSequence(QVector<LONG> sequence); 526 527 void sigPutUsageCodesPress(QVector<QPair<LONG, LONG> > sequence); 528 void sigPutUsageCodesRelease(QVector<QPair<LONG, LONG> > sequence); 529 530 511 531 void sigCurrentLayoutChange(); 512 532 void sigKeyToEdit(UISoftKeyboardKey* pKey); … … 1463 1483 } 1464 1484 1485 void UISoftKeyboardKey::setUsageId(LONG usageId) 1486 { 1487 m_iUsageId = usageId; 1488 } 1489 1490 void UISoftKeyboardKey::setUsagePage(LONG usagePage) 1491 { 1492 m_iUsagePage = usagePage; 1493 } 1494 1495 QPair<LONG, LONG> UISoftKeyboardKey::usagePageIdPair() const 1496 { 1497 return QPair<LONG, LONG>(m_iUsageId, m_iUsagePage); 1498 } 1499 1465 1500 int UISoftKeyboardKey::spaceWidthAfter() const 1466 1501 { … … 2426 2461 return; 2427 2462 2463 #if 0 2464 2428 2465 QVector<LONG> sequence; 2429 2466 if (!pKey->scanCodePrefix().isEmpty()) … … 2442 2479 } 2443 2480 emit sigPutKeyboardSequence(sequence); 2481 2482 #else 2483 2484 QVector<QPair<LONG, LONG> > sequence; 2485 sequence << QPair<LONG, LONG>(pKey->usagePageIdPair()); 2486 /* Add the pressed modifiers in the reverse order: */ 2487 for (int i = m_pressedModifiers.size() - 1; i >= 0; --i) 2488 { 2489 UISoftKeyboardKey *pModifier = m_pressedModifiers[i]; 2490 sequence << pModifier->usagePageIdPair(); 2491 /* Release the pressed modifiers (if there are not locked): */ 2492 pModifier->release(); 2493 } 2494 emit sigPutUsageCodesRelease(sequence); 2495 2496 #endif 2444 2497 } 2445 2498 … … 2453 2506 return; 2454 2507 2508 #if 0 2455 2509 QVector<LONG> sequence; 2456 2510 /* Add the pressed modifiers first: */ … … 2467 2521 sequence << pKey->scanCode(); 2468 2522 emit sigPutKeyboardSequence(sequence); 2523 2524 #else 2525 2526 QVector<QPair<LONG, LONG> > sequence; 2527 2528 /* Add the pressed modifiers first: */ 2529 for (int i = 0; i < m_pressedModifiers.size(); ++i) 2530 { 2531 UISoftKeyboardKey *pModifier = m_pressedModifiers[i]; 2532 sequence << pModifier->usagePageIdPair(); 2533 } 2534 2535 sequence << pKey->usagePageIdPair(); 2536 emit sigPutUsageCodesPress(sequence); 2537 2538 #endif 2469 2539 } 2470 2540 … … 2923 2993 key.addScanCodePrefix(iCode); 2924 2994 } 2995 } 2996 else if (m_xmlReader.name() == "usageid") 2997 { 2998 QString strCode = m_xmlReader.readElementText(); 2999 bool fOk = false; 3000 key.setUsageId(strCode.toInt(&fOk, 16)); 3001 } 3002 else if (m_xmlReader.name() == "usagepage") 3003 { 3004 QString strCode = m_xmlReader.readElementText(); 3005 bool fOk = false; 3006 key.setUsagePage(strCode.toInt(&fOk, 16)); 2925 3007 } 2926 3008 else if (m_xmlReader.name() == "cutout") … … 3391 3473 } 3392 3474 3475 void UISoftKeyboard::sltPutUsageCodesPress(QVector<QPair<LONG, LONG> > sequence) 3476 { 3477 for (int i = 0; i < sequence.size(); ++i) 3478 keyboard().PutUsageCode(sequence[i].first, sequence[i].second, false); 3479 } 3480 3481 void UISoftKeyboard::sltPutUsageCodesRelease(QVector<QPair<LONG, LONG> > sequence) 3482 { 3483 for (int i = 0; i < sequence.size(); ++i) 3484 keyboard().PutUsageCode(sequence[i].first, sequence[i].second, true); 3485 } 3486 3393 3487 void UISoftKeyboard::sltStatusBarContextMenuRequest(const QPoint &point) 3394 3488 { … … 3592 3686 connect(m_pSession, &UISession::sigKeyboardLedsChange, this, &UISoftKeyboard::sltKeyboardLedsChange); 3593 3687 connect(m_pKeyboardWidget, &UISoftKeyboardWidget::sigPutKeyboardSequence, this, &UISoftKeyboard::sltPutKeyboardSequence); 3688 connect(m_pKeyboardWidget, &UISoftKeyboardWidget::sigPutUsageCodesPress, this, &UISoftKeyboard::sltPutUsageCodesPress); 3689 connect(m_pKeyboardWidget, &UISoftKeyboardWidget::sigPutUsageCodesRelease, this, &UISoftKeyboard::sltPutUsageCodesRelease); 3690 3594 3691 connect(m_pKeyboardWidget, &UISoftKeyboardWidget::sigCurrentLayoutChange, this, &UISoftKeyboard::sltCurentLayoutChanged); 3595 3692 connect(m_pKeyboardWidget, &UISoftKeyboardWidget::sigKeyToEdit, this, &UISoftKeyboard::sltKeyToEditChanged); -
trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.h
r79641 r79729 67 67 void sltKeyboardLedsChange(); 68 68 void sltPutKeyboardSequence(QVector<LONG> sequence); 69 void sltPutUsageCodesPress(QVector<QPair<LONG, LONG> > sequence); 70 void sltPutUsageCodesRelease(QVector<QPair<LONG, LONG> > sequence); 71 69 72 void sltStatusBarContextMenuRequest(const QPoint &point); 70 73 /** Handles the signal we get from the layout selector widget.
Note:
See TracChangeset
for help on using the changeset viewer.

