From ab5a0c9cb18a69bf0b014807d9a03193feeedcb4 Mon Sep 17 00:00:00 2001 From: Aleksei German Date: Tue, 7 Apr 2020 19:17:33 +0200 Subject: [PATCH] QDS IconFont to Icons importer Change-Id: Idae58499cf3a3e3967e701597b0f00c16367c602 Reviewed-by: Thomas Hartmann --- src/libs/utils/stylehelper.cpp | 28 ++++++++++++++++++++++++++++ src/libs/utils/stylehelper.h | 2 ++ 2 files changed, 30 insertions(+) diff --git a/src/libs/utils/stylehelper.cpp b/src/libs/utils/stylehelper.cpp index f91c24b52ac..28d07392271 100644 --- a/src/libs/utils/stylehelper.cpp +++ b/src/libs/utils/stylehelper.cpp @@ -35,6 +35,7 @@ #include #include #include +#include #include // Clamps float color values within (0, 255) @@ -542,6 +543,33 @@ QLinearGradient StyleHelper::statusBarGradient(const QRect &statusBarRect) return grad; } +QPixmap StyleHelper::getIconFromIconFont(const QString &fontName, const QString &iconSymbol, int fontSize, int iconSize) +{ + QFontDatabase a; + + Q_ASSERT(a.hasFamily(fontName)); + + if (a.hasFamily(fontName)) { + QPixmap icon(iconSize, iconSize); + icon.fill(Qt::transparent); + QPainter painter(&icon); + QFont font(fontName); + font.setPixelSize(fontSize); + QColor penColor = QApplication::palette("QWidget").color(QPalette::Normal, QPalette::ButtonText); + + painter.save(); + painter.setPen(penColor); + painter.setFont(font); + painter.drawText(QRectF(0, 0, iconSize, iconSize), iconSymbol); + + painter.restore(); + + return icon; + } + + return {}; +} + QString StyleHelper::dpiSpecificImageFile(const QString &fileName) { // See QIcon::addFile() diff --git a/src/libs/utils/stylehelper.h b/src/libs/utils/stylehelper.h index 4bcec960ad5..e9261b7c8bb 100644 --- a/src/libs/utils/stylehelper.h +++ b/src/libs/utils/stylehelper.h @@ -93,6 +93,8 @@ public: static void tintImage(QImage &img, const QColor &tintColor); static QLinearGradient statusBarGradient(const QRect &statusBarRect); + static QPixmap getIconFromIconFont(const QString &fontName, const QString &iconSymbol, int fontSize, int iconSize); + static QString dpiSpecificImageFile(const QString &fileName); static QString imageFileWithResolution(const QString &fileName, int dpr); static QList availableImageResolutions(const QString &fileName);