From 6da1b0727d7215d8358820562f2b5e1657e5801c Mon Sep 17 00:00:00 2001
From: hjk <qtc-committer@nokia.com>
Date: Thu, 13 Oct 2011 10:17:06 +0200
Subject: [PATCH] debugger: make threadsviews sortable

Change-Id: I9abdcc76d406f806de0d617aa731f97adde97060
Reviewed-by: hjk <qthjk@ovi.com>
---
 src/plugins/debugger/moduleshandler.h   | 8 +++++---
 src/plugins/debugger/threadshandler.cpp | 8 ++++++++
 src/plugins/debugger/threadshandler.h   | 8 +++++++-
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/plugins/debugger/moduleshandler.h b/src/plugins/debugger/moduleshandler.h
index 1ad8c171be1..7e98b6f2857 100644
--- a/src/plugins/debugger/moduleshandler.h
+++ b/src/plugins/debugger/moduleshandler.h
@@ -33,11 +33,13 @@
 #ifndef DEBUGGER_MODULESHANDLER_H
 #define DEBUGGER_MODULESHANDLER_H
 
-#include <QtCore/QVector>
-#include <QtCore/QObject>
 #include <QtCore/QAbstractItemModel>
+#include <QtCore/QObject>
+#include <QtCore/QVector>
 
-QT_FORWARD_DECLARE_CLASS(QSortFilterProxyModel)
+QT_BEGIN_NAMESPACE
+class QSortFilterProxyModel;
+QT_END_NAMESPACE
 
 namespace Debugger {
 namespace Internal {
diff --git a/src/plugins/debugger/threadshandler.cpp b/src/plugins/debugger/threadshandler.cpp
index 47350c0aa73..7690bf63972 100644
--- a/src/plugins/debugger/threadshandler.cpp
+++ b/src/plugins/debugger/threadshandler.cpp
@@ -38,6 +38,7 @@
 
 #include <QtCore/QDebug>
 #include <QtCore/QTextStream>
+#include <QtGui/QSortFilterProxyModel>
 
 namespace Debugger {
 namespace Internal {
@@ -107,6 +108,8 @@ ThreadsHandler::ThreadsHandler()
 {
     m_resetLocationScheduled = false;
     m_contentsValid = false;
+    m_proxyModel = new QSortFilterProxyModel(this);
+    m_proxyModel->setSourceModel(this);
 }
 
 int ThreadsHandler::rowCount(const QModelIndex &parent) const
@@ -339,5 +342,10 @@ void ThreadsHandler::resetLocation()
     }
 }
 
+QAbstractItemModel *ThreadsHandler::model()
+{
+    return m_proxyModel;
+}
+
 } // namespace Internal
 } // namespace Debugger
diff --git a/src/plugins/debugger/threadshandler.h b/src/plugins/debugger/threadshandler.h
index 183ded76735..361bd0f486e 100644
--- a/src/plugins/debugger/threadshandler.h
+++ b/src/plugins/debugger/threadshandler.h
@@ -38,6 +38,10 @@
 
 #include "threaddata.h"
 
+QT_BEGIN_NAMESPACE
+class QSortFilterProxyModel;
+QT_END_NAMESPACE
+
 ////////////////////////////////////////////////////////////////////////
 //
 // ThreadsHandler
@@ -65,7 +69,7 @@ public:
     void setThreads(const Threads &threads);
     void removeAll();
     Threads threads() const;
-    QAbstractItemModel *model() { return this; }
+    QAbstractItemModel *model();
 
     // Clear out all frame information
     void notifyRunning();
@@ -91,6 +95,8 @@ private:
 
     bool m_resetLocationScheduled;
     bool m_contentsValid;
+
+    QSortFilterProxyModel *m_proxyModel;
 };
 
 } // namespace Internal
-- 
GitLab