From 5a9a707716bdbdc84183b45ebdedd50f990f74a7 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Sun, 31 Mar 2024 07:50:01 +0300 Subject: [PATCH] do not assume the resolved fonts have the same point size in QFontFamilyDelegate that means no fancy drawing of the font family name with the font itself, fonts however may not even have the glyphs for that (symbol fonts?) Signed-off-by: Ivailo Monev --- src/gui/widgets/qfontcombobox.cpp | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/src/gui/widgets/qfontcombobox.cpp b/src/gui/widgets/qfontcombobox.cpp index c976b42e2..da7fdb9cd 100644 --- a/src/gui/widgets/qfontcombobox.cpp +++ b/src/gui/widgets/qfontcombobox.cpp @@ -66,10 +66,6 @@ void QFontFamilyDelegate::paint(QPainter *painter, const QModelIndex &index) const { QString text = index.data(Qt::DisplayRole).toString(); - QFont font(option.font); - QFont systemfont = fdb.font(font.family(), font.styleName(), font.pointSize()); - font.setPointSize(systemfont.pointSize() * 3 / 2); - font.setFamily(text); QRect r = option.rect; @@ -93,13 +89,8 @@ void QFontFamilyDelegate::paint(QPainter *painter, else r.setLeft(r.left() + actualSize.width() + 4); - QFont old = painter->font(); - painter->setFont(font); - painter->drawText(r, Qt::AlignVCenter|Qt::AlignLeft|Qt::TextSingleLine, text); - painter->setFont(old); - if (option.state & QStyle::State_Selected) painter->restore(); @@ -110,11 +101,8 @@ QSize QFontFamilyDelegate::sizeHint(const QStyleOptionViewItem &option, { QString text = index.data(Qt::DisplayRole).toString(); QFont font(option.font); - // font.setFamily(text); - QFont systemfont = fdb.font(font.family(), font.styleName(), font.pointSize()); - font.setPointSize(systemfont.pointSize() * 3/2); QFontMetrics fontMetrics(font); - return QSize(fontMetrics.width(text), fontMetrics.height()); + return fontMetrics.size(Qt::TextSingleLine, text); }