| author | hgs |
| Mon, 18 Oct 2010 16:30:05 +0300 | |
| changeset 55 | 2d9cac8919d3 |
| parent 51 | b048e15729d6 |
| permissions | -rw-r--r-- |
|
17
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
4 |
* This component and the accompanying materials are made available |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
5 |
* under the terms of "Eclipse Public License v1.0" |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
6 |
* which accompanies this distribution, and is available |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
7 |
* at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
8 |
* |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
9 |
* Initial Contributors: |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
10 |
* Nokia Corporation - initial contribution. |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
11 |
* |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
12 |
* Contributors: |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
13 |
* |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
14 |
* Description: |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
15 |
* |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
16 |
*/ |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
17 |
|
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
18 |
#include <QAction> |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
#include <QStringListModel> |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
20 |
#include <HbMenu> |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
|
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include "memspythreaddetailview.h" |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
|
| 26 | 24 |
MemSpyThreadDetailModel::MemSpyThreadDetailModel(EngineWrapper &engine, ThreadId threadId, ThreadInfoType type, QObject *parent) : |
25 |
QAbstractListModel(parent), |
|
26 |
mThreadInfo(engine.getThreadInfo(threadId, type)) |
|
27 |
{
|
|
28 |
} |
|
29 |
||
30 |
MemSpyThreadDetailModel::~MemSpyThreadDetailModel() |
|
31 |
{
|
|
32 |
qDeleteAll(mThreadInfo); |
|
33 |
} |
|
34 |
||
35 |
int MemSpyThreadDetailModel::rowCount(const QModelIndex &parent) const |
|
36 |
{
|
|
37 |
Q_UNUSED(parent); |
|
| 31 | 38 |
return qMax(mThreadInfo.count(), 1); |
| 26 | 39 |
} |
40 |
||
41 |
QVariant MemSpyThreadDetailModel::data(const QModelIndex &index, int role) const |
|
42 |
{
|
|
43 |
if (role == Qt::DisplayRole) {
|
|
| 31 | 44 |
|
45 |
if (mThreadInfo.count()) {
|
|
46 |
QStringList lines; |
|
47 |
lines << mThreadInfo.at(index.row())->caption(); |
|
48 |
lines << mThreadInfo.at(index.row())->value(); |
|
49 |
return lines; |
|
50 |
} |
|
51 |
||
52 |
return tr("(no items found)");
|
|
53 |
} |
|
54 |
||
55 |
if (role == Qt::TextAlignmentRole && mThreadInfo.count() == 0) {
|
|
56 |
||
57 |
return Qt::AlignHCenter; |
|
| 26 | 58 |
} |
59 |
||
60 |
return QVariant(); |
|
61 |
} |
|
62 |
||
|
17
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
63 |
void MemSpyThreadDetailView::initialize(const QVariantMap& params) |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
64 |
{
|
| 31 | 65 |
mProcessName = params["pname"].toString(); |
66 |
mThreadName = params["tname"].toString(); |
|
67 |
||
68 |
// TODO: Remove duplicates with memspythreaddetailindexview |
|
69 |
QMap<int, QString> titleMap; |
|
70 |
titleMap[ThreadInfoTypeGeneral] = tr("General");
|
|
71 |
titleMap[ThreadInfoTypeHeap] = tr("Heap");
|
|
72 |
titleMap[ThreadInfoTypeStack] = tr("Stack");
|
|
73 |
titleMap[ThreadInfoTypeChunk] = tr("Chunks");
|
|
74 |
titleMap[ThreadInfoTypeCodeSeg] = tr("Code Segments");
|
|
75 |
titleMap[ThreadInfoTypeOpenFiles] = tr("Open Files");
|
|
76 |
titleMap[ThreadInfoTypeActiveObjects] = tr("Active Objects");
|
|
77 |
titleMap[ThreadInfoTypeOwnedThreadHandles] = tr("Handles to other Threads");
|
|
78 |
titleMap[ThreadInfoTypeOwnedProcessHandles] = tr("Handles to other Processes");
|
|
79 |
titleMap[ThreadInfoTypeServer] = tr("Servers Running in Thread");
|
|
80 |
titleMap[ThreadInfoTypeSession] = tr("Client <-> Server connections");
|
|
81 |
titleMap[ThreadInfoTypeSemaphore] = tr("Semaphores");
|
|
82 |
titleMap[ThreadInfoTypeOtherThreads] = tr("References this Thread");
|
|
83 |
titleMap[ThreadInfoTypeOtherProcesses] = tr("References this Process");
|
|
84 |
titleMap[ThreadInfoTypeMutex] = tr("Mutexes");
|
|
85 |
titleMap[ThreadInfoTypeTimer] = tr("Timers");
|
|
86 |
titleMap[ThreadInfoTypeChannel] = tr("Logical DD Channels");
|
|
87 |
titleMap[ThreadInfoTypeChangeNotifier] = tr("Change Notifiers");
|
|
88 |
titleMap[ThreadInfoTypeUndertaker] = tr("Undertakers");
|
|
89 |
titleMap[ThreadInfoTypeLDD] = tr("Logical Device Drivers");
|
|
90 |
titleMap[ThreadInfoTypePDD] = tr("Physical Device Drivers");
|
|
91 |
||
92 |
setTitle(titleMap.value(params["type"].toInt())); |
|
93 |
||
|
17
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
94 |
MemSpyView::initialize(params); |
|
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
95 |
|
| 26 | 96 |
ThreadId threadId = qVariantValue<ThreadId>(params["tid"]); |
97 |
ThreadInfoType type = static_cast<ThreadInfoType>(qVariantValue<int>(params["type"])); |
|
|
17
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
98 |
|
| 26 | 99 |
mListView.setModel(new MemSpyThreadDetailModel(mEngine, threadId, type, this)); |
|
17
4f2773374eff
Revision: 201017
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
100 |
} |
| 31 | 101 |
|
102 |
bool MemSpyThreadDetailView::isBreadCrumbVisible() const |
|
103 |
{
|
|
104 |
return true; |
|
105 |
} |
|
106 |
||
107 |
QString MemSpyThreadDetailView::getBreadCrumbText() const |
|
108 |
{
|
|
109 |
return tr("Processes > %1 > Threads > %2").arg(mProcessName).arg(mThreadName);
|
|
110 |
} |