Skip to content
Snippets Groups Projects
Commit e98a61fe authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Show topic and name changes in timeline

parent dee49508
No related branches found
No related tags found
No related merge requests found
......@@ -49,6 +49,18 @@ DelegateChooser {
text: qsTr("Encryption enabled")
}
}
DelegateChoice {
roleValue: MtxEvent.Name
NoticeMessage {
notice: model.roomName ? qsTr("room name changed to: %1").arg(model.roomName) : qsTr("removed room name")
}
}
DelegateChoice {
roleValue: MtxEvent.Topic
NoticeMessage {
notice: model.roomTopic ? qsTr("topic changed to: %1").arg(model.roomTopic) : qsTr("removed topic")
}
}
DelegateChoice {
Placeholder {}
}
......
import ".."
MatrixText {
text: model.formattedBody
property string notice: model.formattedBody.replace("<pre>", "<pre style='white-space: pre-wrap'>")
text: notice
width: parent ? parent.width : undefined
font.italic: true
color: inactiveColors.text
......
......@@ -59,6 +59,30 @@ eventMsgType(const mtx::events::RoomEvent<T> &e) -> decltype(e.content.msgtype)
return e.content.msgtype;
}
template<class T>
QString
eventRoomName(const T &)
{
return "";
}
QString
eventRoomName(const mtx::events::StateEvent<mtx::events::state::Name> &e)
{
return QString::fromStdString(e.content.name);
}
template<class T>
QString
eventRoomTopic(const T &)
{
return "";
}
QString
eventRoomTopic(const mtx::events::StateEvent<mtx::events::state::Topic> &e)
{
return QString::fromStdString(e.content.topic);
}
template<class T>
QString
eventBody(const mtx::events::Event<T> &)
......@@ -437,6 +461,8 @@ TimelineModel::roleNames() const
{State, "state"},
{IsEncrypted, "isEncrypted"},
{ReplyTo, "replyTo"},
{RoomName, "roomName"},
{RoomTopic, "roomTopic"},
};
}
int
......@@ -563,6 +589,12 @@ TimelineModel::data(const QModelIndex &index, int role) const
[](const auto &e) -> QString { return eventRelatesTo(e); }, event);
return QVariant(evId);
}
case RoomName:
return QVariant(boost::apply_visitor(
[](const auto &e) -> QString { return eventRoomName(e); }, event));
case RoomTopic:
return QVariant(boost::apply_visitor(
[](const auto &e) -> QString { return eventRoomTopic(e); }, event));
default:
return QVariant();
}
......
......@@ -141,6 +141,8 @@ public:
State,
IsEncrypted,
ReplyTo,
RoomName,
RoomTopic,
};
QHash<int, QByteArray> roleNames() const override;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment