--- a/memspyui/ui/hb/src/memspythreadview.cpp Fri Jun 11 16:29:34 2010 +0100
+++ b/memspyui/ui/hb/src/memspythreadview.cpp Thu Jul 22 16:33:59 2010 +0100
@@ -22,9 +22,11 @@
#include "memspythreadview.h"
#include "viewmanager.h"
-MemSpyThreadModel::MemSpyThreadModel(EngineWrapper &engine, ProcessId threadId, QObject *parent) :
+MemSpyThreadModel::MemSpyThreadModel(EngineWrapper &engine, ProcessId processId, QObject *parent) :
QAbstractListModel(parent),
- mThreads(engine.getThreads(threadId))
+ mProcessId(processId),
+ mEngine(engine),
+ mThreads(engine.getThreads(processId))
{
mPriorityMap.insert(ThreadPriorityNull, tr("[Null]"));
mPriorityMap.insert(ThreadPriorityMuchLess, tr("[Much Less]"));
@@ -78,11 +80,21 @@
return QVariant();
}
+void MemSpyThreadModel::refresh()
+{
+ beginResetModel();
+ QList<MemSpyThread*> data = mEngine.getThreads(mProcessId);
+ qDeleteAll(mThreads);
+ mThreads = data;
+ endResetModel();
+}
+
MemSpyThreadView::MemSpyThreadView(EngineWrapper &engine, ViewManager &viewManager) :
- MemSpyView(engine, viewManager),
+ MemSpyListView(engine, viewManager),
mContextMenu(0),
mPriorityMenu(0),
- mThreadId(0)
+ mThreadId(0),
+ mModel(0)
{
}
@@ -94,13 +106,15 @@
void MemSpyThreadView::initialize(const QVariantMap& params)
{
+ ProcessId pid = qVariantValue<ProcessId>(params["pid"]);
+ setTitle(tr("Threads"));
+
+ mProcessName = params["pname"].toString();
+
MemSpyView::initialize(params);
- ProcessId pid = qVariantValue<ProcessId>(params["pid"]);
- setTitle(tr("Threads").arg(pid));
-
- mListView.setModel(new MemSpyThreadModel(mEngine, pid, this));
- mListView.setLongPressEnabled(true);
+ mModel = new MemSpyThreadModel(mEngine, pid, this);
+ mListView.setModel(mModel);
connect(&mListView, SIGNAL(activated(QModelIndex)), this, SLOT(itemClicked(QModelIndex)));
connect(&mListView, SIGNAL(longPressed(HbAbstractViewItem*,QPointF)),
@@ -128,16 +142,30 @@
mPriorityMenu->addAction(tr("Abs. Real Time 8"), this, SLOT(changePriority()));
}
+
+bool MemSpyThreadView::isBreadCrumbVisible() const
+{
+ return true;
+}
+
+QString MemSpyThreadView::getBreadCrumbText() const
+{
+ return tr("Processes > %1").arg(mProcessName);
+}
+
void MemSpyThreadView::itemClicked(const QModelIndex& index)
{
QVariantMap map;
map["tid"] = index.data(Qt::UserRole);
- mViewManager.showView(ThreadDetailView, map);
+ map.insert("pname", mProcessName);
+ map.insert("tname", index.data(Qt::DisplayRole).toStringList().at(0));
+
+ mViewManager.showView(ThreadDetailIndexView, map);
}
void MemSpyThreadView::catchLongPress(HbAbstractViewItem *item, const QPointF &coords)
{
- mThreadId = qVariantValue<ThreadId>(item->data(Qt::UserRole));
+ mThreadId = qVariantValue<ThreadId>(item->modelIndex().data(Qt::UserRole));
mContextMenu->setPreferredPos(coords);
mContextMenu->open();
}
@@ -167,4 +195,10 @@
ThreadPriorityAbsoluteRealTime8 };
mEngine.setThreadPriority(mThreadId, priorities[index]);
+ refresh();
}
+
+void MemSpyThreadView::refresh()
+{
+ mModel->refresh();
+}