OSDN Git Service

Make the TaskView 10% faster by caching how wide "8888" is.
authordt <qtc-committer@nokia.com>
Tue, 8 Jun 2010 15:36:47 +0000 (17:36 +0200)
committerdt <qtc-committer@nokia.com>
Tue, 8 Jun 2010 15:37:29 +0000 (17:37 +0200)
src/plugins/projectexplorer/taskwindow.cpp

index 0deacbd..d01dd1a 100644 (file)
@@ -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)