summary refs log tree commit diff
path: root/src/timeline/TimelineModel.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2020-01-11 14:07:51 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2020-01-11 14:07:51 +0100
commit2b3dc3d8b9d1108c3f6ad226ad65060bd3999033 (patch)
tree42419bdee5b28c98eaafb44724c64f351a275199 /src/timeline/TimelineModel.cpp
parenttry to make appveyor happy (diff)
downloadnheko-2b3dc3d8b9d1108c3f6ad226ad65060bd3999033.tar.xz
Implement fancy reply rendering
This currently assumes the event, that is replied to, is already
fetched. If it isn't, it will render an empty reply. In the future we
should fetch replies before rendering them.
Diffstat (limited to 'src/timeline/TimelineModel.cpp')
-rw-r--r--src/timeline/TimelineModel.cpp16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp

index 0e7f5259..41d864bd 100644 --- a/src/timeline/TimelineModel.cpp +++ b/src/timeline/TimelineModel.cpp
@@ -212,6 +212,14 @@ TimelineModel::rowCount(const QModelIndex &parent) const return (int)this->eventOrder.size(); } +QVariantMap +TimelineModel::getDump(QString eventId) const +{ + if (events.contains(eventId)) + return data(index(idToIndex(eventId), 0), Dump).toMap(); + return {}; +} + QVariant TimelineModel::data(const QModelIndex &index, int role) const { @@ -263,11 +271,13 @@ TimelineModel::data(const QModelIndex &index, int role) const return QVariant(toRoomEventType(event)); case Body: return QVariant(utils::replaceEmoji(QString::fromStdString(body(event)))); - case FormattedBody: + case FormattedBody: { + const static QRegularExpression replyFallback( + "<mx-reply>.*</mx-reply>", QRegularExpression::DotMatchesEverythingOption); return QVariant( utils::replaceEmoji(utils::linkifyMessage(formattedBodyWithFallback(event))) - .remove("<mx-reply>") - .remove("</mx-reply>")); + .remove(replyFallback)); + } case Url: return QVariant(QString::fromStdString(url(event))); case ThumbnailUrl: