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