MCPcopy Create free account
hub / github.com/davidar/tensor / data

Method data

client/models/messageeventmodel.cpp:93–203  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

91}
92
93QVariant MessageEventModel::data(const QModelIndex& index, int role) const
94{
95 if( index.row() < 0 || index.row() >= m_currentMessages.count() )
96 return QVariant();
97
98 QMatrixClient::Event* event = m_currentMessages.at(index.row());
99
100 if( role == Qt::DisplayRole )
101 {
102 if( event->type() == QMatrixClient::EventType::RoomMessage )
103 {
104 QMatrixClient::RoomMessageEvent* e = static_cast<QMatrixClient::RoomMessageEvent*>(event);
105 QMatrixClient::User* user = m_connection->user(e->userId());
106 return QString("%1 (%2): %3").arg(user->name()).arg(user->id()).arg(e->body());
107 }
108 if( event->type() == QMatrixClient::EventType::RoomMember )
109 {
110 QMatrixClient::RoomMemberEvent* e = static_cast<QMatrixClient::RoomMemberEvent*>(event);
111 switch( e->membership() )
112 {
113 case QMatrixClient::MembershipType::Join:
114 return QString("%1 (%2) joined the room").arg(e->displayName(), e->userId());
115 case QMatrixClient::MembershipType::Leave:
116 return QString("%1 (%2) left the room").arg(e->displayName(), e->userId());
117 case QMatrixClient::MembershipType::Ban:
118 return QString("%1 (%2) was banned from the room").arg(e->displayName(), e->userId());
119 case QMatrixClient::MembershipType::Invite:
120 return QString("%1 (%2) was invited to the room").arg(e->displayName(), e->userId());
121 case QMatrixClient::MembershipType::Knock:
122 return QString("%1 (%2) knocked").arg(e->displayName(), e->userId());
123 }
124 }
125 if( event->type() == QMatrixClient::EventType::RoomAliases )
126 {
127 QMatrixClient::RoomAliasesEvent* e = static_cast<QMatrixClient::RoomAliasesEvent*>(event);
128 return QString("Current aliases: %1").arg(e->aliases().join(", "));
129 }
130 return "Unknown Event";
131 }
132
133 if( role == Qt::ToolTipRole )
134 {
135 return event->originalJson();
136 }
137
138 if( role == EventTypeRole )
139 {
140 if( event->type() == QMatrixClient::EventType::RoomMessage )
141 return "message";
142 return "other";
143 }
144
145 if( role == TimeRole )
146 {
147 return event->timestamp();
148 }
149
150 if( role == DateRole )

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected