From 2f69bedc5f078064b112aa2b5790e5fd625980b3 Mon Sep 17 00:00:00 2001 From: mae <qt-info@nokia.com> Date: Thu, 20 Aug 2009 16:13:24 +0200 Subject: [PATCH] Fixed the bold-line-numbers-cut-off problem in the text editor --- src/plugins/texteditor/basetexteditor.cpp | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/plugins/texteditor/basetexteditor.cpp b/src/plugins/texteditor/basetexteditor.cpp index 97ed8c9a4a7..8c23d975df5 100644 --- a/src/plugins/texteditor/basetexteditor.cpp +++ b/src/plugins/texteditor/basetexteditor.cpp @@ -2253,13 +2253,19 @@ int BaseTextEditor::extraAreaWidth(int *markWidthPtr) const const QFontMetrics fm(d->m_extraArea->fontMetrics()); if (d->m_lineNumbersVisible) { + QFont fnt = d->m_extraArea->font(); + // this works under the assumption that bold or italic can only make a font wider + fnt.setBold(d->m_currentLineNumberFormat.font().bold()); + fnt.setItalic(d->m_currentLineNumberFormat.font().italic()); + const QFontMetrics linefm(fnt); + int digits = 2; int max = qMax(1, blockCount()); while (max >= 100) { max /= 10; ++digits; } - space += fm.width(QLatin1Char('9')) * digits; + space += linefm.width(QLatin1Char('9')) * digits; } int markWidth = 0; @@ -2332,7 +2338,7 @@ void BaseTextEditor::extraAreaPaintEvent(QPaintEvent *e) QPalette pal = d->m_extraArea->palette(); pal.setCurrentColorGroup(QPalette::Active); QPainter painter(d->m_extraArea); - QFontMetrics fm(painter.fontMetrics()); + const QFontMetrics fm(d->m_extraArea->font()); int fmLineSpacing = fm.lineSpacing(); int markWidth = 0; -- GitLab