diff -r e0ec97ec3cc4 -r 98924d2efce9 memspyui/ui/hb/src/memspyprocessview.cpp --- a/memspyui/ui/hb/src/memspyprocessview.cpp Wed Jun 23 18:13:31 2010 +0300 +++ b/memspyui/ui/hb/src/memspyprocessview.cpp Tue Jul 06 14:17:03 2010 +0300 @@ -23,8 +23,17 @@ MemSpyProcessModel::MemSpyProcessModel(EngineWrapper &engine, QObject *parent) : QAbstractListModel(parent), + mEngine(engine), mProcesses(engine.getProcesses()) { + mPriorityMap.insert(EPriorityLow, tr("[L]")); + mPriorityMap.insert(EPriorityBackground, tr("[B]")); + mPriorityMap.insert(EPriorityForeground, tr("[F]")); + mPriorityMap.insert(EPriorityHigh, tr("[H]")); + mPriorityMap.insert(EPriorityWindowServer, tr("[WS]")); + mPriorityMap.insert(EPriorityFileServer, tr("[FS]")); + mPriorityMap.insert(EPriorityRealTimeServer, tr("[RTS]")); + mPriorityMap.insert(EPrioritySupervisor, tr("[SUP]")); } MemSpyProcessModel::~MemSpyProcessModel() @@ -41,8 +50,17 @@ QVariant MemSpyProcessModel::data(const QModelIndex &index, int role) const { if (role == Qt::DisplayRole) { + const MemSpyProcess* process = mProcesses.at(index.row()); + QStringList lines; - lines << mProcesses.at(index.row())->name(); + lines << process->name(); + + lines << (process->isDead() ? + process->exitInfo() : + QString("%1, %2 thr, %3"). + arg(process->sid(), 0, 16). + arg(process->threadCount()). + arg(mPriorityMap.value(process->priority(), tr("[?]")))); return lines; } @@ -52,14 +70,24 @@ return QVariant(); } + +void MemSpyProcessModel::refresh() +{ + beginResetModel(); + QList data = mEngine.getProcesses(); + qDeleteAll(mProcesses); + mProcesses = data; + endResetModel(); +} void MemSpyProcessView::initialize(const QVariantMap& params) { + setTitle(tr("Processes")); MemSpyView::initialize(params); - setTitle(tr("Processes")); - mListView.setModel(new MemSpyProcessModel(mEngine, this)); + mModel = new MemSpyProcessModel(mEngine, this); + mListView.setModel(mModel); connect(&mListView, SIGNAL(activated(QModelIndex)), this, SLOT(itemClicked(QModelIndex))); } @@ -68,6 +96,12 @@ { QVariantMap map; map.insert("pid", index.data(Qt::UserRole)); + map.insert("pname", index.data(Qt::DisplayRole).toStringList().at(0)); mViewManager.showView(ThreadView, map); } +void MemSpyProcessView::refresh() +{ + mModel->refresh(); +} +