author | hgs |
Fri, 23 Jul 2010 16:01:15 +0300 | |
changeset 38 | aca9d8bb5fbc |
parent 31 | e7a04a6385be |
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 |
} |