diff --git a/src/Gui/InputHintWidget.cpp b/src/Gui/InputHintWidget.cpp index 51c23ef521..09b33e6622 100644 --- a/src/Gui/InputHintWidget.cpp +++ b/src/Gui/InputHintWidget.cpp @@ -42,6 +42,9 @@ void Gui::InputHintWidget::showHints(const std::list& hints) return; } + constexpr int iconSize = 22; + constexpr int iconMargin = 2; + const auto getKeyImage = [this](InputHint::UserInput key) { const auto& factory = BitmapFactory(); @@ -50,19 +53,20 @@ void Gui::InputHintWidget::showHints(const std::list& hints) if (auto iconPath = getCustomIconPath(key)) { return factory.pixmapFromSvg(*iconPath, - QSize(24, 24), + QSize(iconSize, iconSize), {{0xFFFFFF, color.rgb() & RGB_MASK}}); } - return generateKeyIcon(key, color); + return generateKeyIcon(key, color, iconSize); }(); QBuffer buffer; image.save(&buffer, "png"); - return QStringLiteral("") - .arg(QString::fromLatin1(buffer.data().toBase64())); + return QStringLiteral("") + .arg(QString::fromLatin1(buffer.data().toBase64())) + .arg(iconSize); }; const auto getHintHTML = [&](const InputHint& hint) { @@ -86,9 +90,10 @@ void Gui::InputHintWidget::showHints(const std::list& hints) messages.append(getHintHTML(hint)); } - QString html = QStringLiteral("" - "%1" - "
"); + QString html = QStringLiteral("" + "%2" + "
") + .arg(iconSize + iconMargin * 2); setText(html.arg(messages.join(QStringLiteral("")))); } @@ -120,13 +125,12 @@ std::optional Gui::InputHintWidget::getCustomIconPath(const InputHi } } -QPixmap Gui::InputHintWidget::generateKeyIcon(const InputHint::UserInput key, const QColor color) +QPixmap Gui::InputHintWidget::generateKeyIcon(const InputHint::UserInput key, const QColor color, int height) { constexpr int margin = 3; constexpr int padding = 4; constexpr int radius = 2; - constexpr int iconTotalHeight = 24; - constexpr int iconSymbolHeight = iconTotalHeight - 2 * margin; + const int iconSymbolHeight = height - 2 * margin; const QFont font(QStringLiteral("sans"), 10, QFont::Bold); const QFontMetrics fm(font); @@ -138,7 +142,7 @@ QPixmap Gui::InputHintWidget::generateKeyIcon(const InputHint::UserInput key, co const QRect keyRect(margin, margin, symbolWidth, iconSymbolHeight); - QPixmap pixmap((symbolWidth + margin * 2) * dpr, iconTotalHeight * dpr); + QPixmap pixmap((symbolWidth + margin * 2) * dpr, height * dpr); pixmap.fill(Qt::transparent); pixmap.setDevicePixelRatio(dpr); diff --git a/src/Gui/InputHintWidget.h b/src/Gui/InputHintWidget.h index 94af3107e5..e9a91c5507 100644 --- a/src/Gui/InputHintWidget.h +++ b/src/Gui/InputHintWidget.h @@ -46,7 +46,7 @@ public: private: static std::optional getCustomIconPath(InputHint::UserInput key); static QString inputRepresentation(InputHint::UserInput key); - QPixmap generateKeyIcon(InputHint::UserInput key, QColor color); + QPixmap generateKeyIcon(InputHint::UserInput key, QColor color, int height = 24); }; } // Namespace Gui