MCPcopy Create free account
hub / github.com/KDAB/GammaRay / data

Method data

plugins/eventmonitor/eventmodel.cpp:87–132  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

85}
86
87QVariant EventModel::data(const QModelIndex &index, int role) const
88{
89 if (!index.isValid() || index.column() >= columnCount())
90 return QVariant();
91
92 bool isPropagatedEvent = index.internalId() != TopLevelId;
93
94 int rootEventIndex = isPropagatedEvent ? int(index.internalId()) : index.row();
95 Q_ASSERT(rootEventIndex >= 0 && rootEventIndex < m_events.size());
96 const EventData &event = isPropagatedEvent
97 ? m_events.at(rootEventIndex).propagatedEvents.at(index.row())
98 : m_events.at(rootEventIndex);
99
100 if (role == Qt::DisplayRole) {
101 switch (index.column()) {
102 case EventModelColumn::Time:
103 return isPropagatedEvent ? "<propagated>" : event.time.toString("hh:mm:ss.zzz");
104 case EventModelColumn::Type: {
105 const auto s = VariantHandler::displayString(event.type);
106 if (!s.isEmpty()) {
107 return s;
108 }
109 return event.type;
110 }
111 case EventModelColumn::Receiver: {
112 QMutexLocker lock(Probe::objectLock());
113 if (Probe::instance()->isValidObject(event.receiver)) {
114 return Util::displayString(event.receiver);
115 }
116 return Util::addressToString(event.receiver);
117 }
118 }
119 } else if (role == EventModelRole::AttributesRole) {
120 QVariantMap attributesMap;
121 for (const QPair<const char *, QVariant> &pair : event.attributes) {
122 attributesMap.insert(QString::fromUtf8(pair.first), pair.second);
123 }
124 return attributesMap;
125 } else if (role == EventModelRole::ReceiverIdRole && index.column() == EventModelColumn::Receiver) {
126 return QVariant::fromValue(ObjectId(event.receiver));
127 } else if (role == EventModelRole::EventTypeRole) {
128 return QVariant::fromValue(event.type);
129 }
130
131 return QVariant();
132}
133
134QVariant EventModel::headerData(int section, Qt::Orientation orientation, int role) const
135{

Callers 5

eventTreeContextMenuMethod · 0.45
filterAcceptsRowMethod · 0.45
itemDataMethod · 0.45
eventSelectedMethod · 0.45

Calls 10

displayStringFunction · 0.85
addressToStringFunction · 0.85
columnMethod · 0.80
rowMethod · 0.80
QVariantClass · 0.50
ObjectIdClass · 0.50
isValidMethod · 0.45
sizeMethod · 0.45
isEmptyMethod · 0.45
insertMethod · 0.45

Tested by

no test coverage detected