From 27bdfe510edca34b37231ec78a171f053b4d72d7 Mon Sep 17 00:00:00 2001
From: dt <qtc-committer@nokia.com>
Date: Tue, 8 Jun 2010 17:36:47 +0200
Subject: [PATCH] Make the TaskView 10% faster by caching how wide "8888" is.

---
 src/plugins/projectexplorer/taskwindow.cpp | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/src/plugins/projectexplorer/taskwindow.cpp b/src/plugins/projectexplorer/taskwindow.cpp
index 0deacbd4868..d01dd1a87d8 100644
--- a/src/plugins/projectexplorer/taskwindow.cpp
+++ b/src/plugins/projectexplorer/taskwindow.cpp
@@ -142,6 +142,7 @@ private:
     const QIcon m_warningIcon;
     int m_taskCount;
     int m_errorTaskCount;
+    int m_sizeOfLineNumber;
 };
 
 class TaskFilterModel : public QSortFilterProxyModel
@@ -221,7 +222,8 @@ TaskModel::TaskModel() :
     m_errorIcon(QLatin1String(":/projectexplorer/images/compile_error.png")),
     m_warningIcon(QLatin1String(":/projectexplorer/images/compile_warning.png")),
     m_taskCount(0),
-    m_errorTaskCount(0)
+    m_errorTaskCount(0),
+    m_sizeOfLineNumber(0)
 {
 
 }
@@ -422,9 +424,12 @@ int TaskModel::sizeOfFile()
 
 int TaskModel::sizeOfLineNumber()
 {
-    QFont font;
-    QFontMetrics fm(font);
-    return fm.width("8888");
+    if (m_sizeOfLineNumber == 0) {
+        QFont font;
+        QFontMetrics fm(font);
+        m_sizeOfLineNumber = fm.width("8888");
+    }
+    return m_sizeOfLineNumber;
 }
 
 void TaskModel::setFileNotFound(const QModelIndex &idx, bool b)
-- 
GitLab