Changeset 79460 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Jul 2, 2019 7:18:59 AM (6 years ago)
- svn:sync-xref-src-repo-rev:
- 131717
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/softkeyboard/UISoftKeyboard.cpp
r79456 r79460 443 443 444 444 void drawText(int iKeyPosition, const QRect &keyGeometry, QPainter &painter); 445 void drawTextInRect(int iKeyPosition, const QRect &keyGeometry, QPainter &painter); 445 446 446 447 private: … … 1648 1649 { 1649 1650 m_keyCapMap[iKeyPosition].m_strBase = strBaseCaption; 1651 m_keyCapMap[iKeyPosition].m_strBase.replace("\\n", "\n"); 1650 1652 } 1651 1653 … … 1701 1703 { 1702 1704 return m_uid; 1705 } 1706 1707 void UISoftKeyboardLayout::drawTextInRect(int iKeyPosition, const QRect &keyGeometry, QPainter &painter) 1708 { 1709 QFont painterFont(painter.font()); 1710 int iFontSize = 25; 1711 1712 const QString &strBaseCaption = baseCaption(iKeyPosition); 1713 const QString &strShiftCaption = shiftCaption(iKeyPosition); 1714 1715 const QString &strShiftAltGrCaption = shiftAltGrCaption(iKeyPosition); 1716 const QString &strAltGrCaption = altGrCaption(iKeyPosition); 1717 1718 const QString &strTopleftString = !strShiftCaption.isEmpty() ? strShiftCaption : strBaseCaption; 1719 const QString &strBottomleftString = !strShiftCaption.isEmpty() ? strBaseCaption : QString(); 1720 1721 do 1722 { 1723 painterFont.setPixelSize(iFontSize); 1724 painterFont.setBold(true); 1725 painter.setFont(painterFont); 1726 QFontMetrics fontMetrics = painter.fontMetrics(); 1727 int iMargin = 0.25 * fontMetrics.width('X'); 1728 1729 int iTextWidth = 2 * iMargin + qMax(fontMetrics.width(strTopleftString) + fontMetrics.width(strShiftAltGrCaption), 1730 fontMetrics.width(strBottomleftString) + fontMetrics.width(strAltGrCaption)); 1731 int iTextHeight = 2 * iMargin + 2 * fontMetrics.height(); 1732 1733 if (iTextWidth >= keyGeometry.width() || iTextHeight >= keyGeometry.height()) 1734 --iFontSize; 1735 else 1736 break; 1737 1738 }while(iFontSize > 1); 1739 1740 1741 QFontMetrics fontMetrics = painter.fontMetrics(); 1742 1743 int iMargin = 0.25 * fontMetrics.width('X'); 1744 1745 QRect textRect(iMargin, iMargin, 1746 keyGeometry.width() - 2 * iMargin, 1747 keyGeometry.height() - 2 * iMargin); 1748 1749 1750 painter.drawText(textRect, Qt::AlignLeft | Qt::AlignTop, strTopleftString); 1751 painter.drawText(textRect, Qt::AlignLeft | Qt::AlignBottom, strBottomleftString); 1752 1753 1754 // if (!strShiftCaption.isEmpty() && !strBaseCaption.isEmpty()) 1755 // { 1756 // painter.drawText(textRect, Qt::AlignLeft | Qt::AlignTop, strShiftCaption); 1757 // painter.drawText(textRect, Qt::AlignLeft | Qt::AlignBottom, strBaseCaption); 1758 // } 1759 // else 1760 // painter.drawText(textRect, Qt::AlignLeft | Qt::AlignTop, strBaseCaption); 1761 1762 painter.drawText(textRect, Qt::AlignRight | Qt::AlignTop, strShiftAltGrCaption); 1763 painter.drawText(textRect, Qt::AlignRight | Qt::AlignBottom, strAltGrCaption); 1764 1703 1765 } 1704 1766 … … 1895 1957 painter.drawPolygon(key.polygon()); 1896 1958 1897 m_pCurrentKeyboardLayout->drawText(key.position(), key.keyGeometry(), painter); 1959 //m_pCurrentKeyboardLayout->drawText(key.position(), key.keyGeometry(), painter); 1960 m_pCurrentKeyboardLayout->drawTextInRect(key.position(), key.keyGeometry(), painter); 1898 1961 1899 1962 if (key.type() != UIKeyType_Ordinary)
Note:
See TracChangeset
for help on using the changeset viewer.