| 85 | } |
| 86 | |
| 87 | QVariant 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 | |
| 134 | QVariant EventModel::headerData(int section, Qt::Orientation orientation, int role) const |
| 135 | { |
no test coverage detected