summary refs log tree commit diff
path: root/src/TimelineItem.cc
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2017-09-02 16:47:59 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2017-09-02 16:47:59 +0300
commita44a4f36af67c016e207b1cbd63817c6751ed89d (patch)
tree13a8cbee8ae04b081fcbc4999a4e9efe8d9a0ffe /src/TimelineItem.cc
parentLinkify URLs in room topics (diff)
downloadnheko-a44a4f36af67c016e207b1cbd63817c6751ed89d.tar.xz
Add read support for m.emote events (#41)
Diffstat (limited to 'src/TimelineItem.cc')
-rw-r--r--src/TimelineItem.cc39
1 files changed, 37 insertions, 2 deletions
diff --git a/src/TimelineItem.cc b/src/TimelineItem.cc

index cfa5a988..62ebc515 100644 --- a/src/TimelineItem.cc +++ b/src/TimelineItem.cc
@@ -192,6 +192,43 @@ TimelineItem::TimelineItem(const events::MessageEvent<msgs::Notice> &event, } /* + * Used to display remote emote messages. + */ +TimelineItem::TimelineItem(const events::MessageEvent<msgs::Emote> &event, + bool with_sender, + QWidget *parent) + : QWidget(parent) +{ + init(); + + auto body = event.content().body().trimmed().toHtmlEscaped(); + auto timestamp = QDateTime::fromMSecsSinceEpoch(event.timestamp()); + auto displayName = TimelineViewManager::displayName(event.sender()); + auto emoteMsg = QString("* %1 %2").arg(displayName).arg(body); + + descriptionMsg_ = { "", + event.sender(), + emoteMsg, + descriptiveTime(QDateTime::fromMSecsSinceEpoch(event.timestamp())) }; + + generateTimestamp(timestamp); + emoteMsg.replace(URL_REGEX, URL_HTML); + + if (with_sender) { + generateBody(displayName, emoteMsg); + setupAvatarLayout(displayName); + mainLayout_->addLayout(headerLayout_); + + AvatarProvider::resolve(event.sender(), this); + } else { + generateBody(emoteMsg); + setupSimpleLayout(); + } + + mainLayout_->addWidget(body_); +} + +/* * Used to display remote text messages. */ TimelineItem::TimelineItem(const events::MessageEvent<msgs::Text> &event, @@ -216,8 +253,6 @@ TimelineItem::TimelineItem(const events::MessageEvent<msgs::Text> &event, body.replace(URL_REGEX, URL_HTML); if (with_sender) { - auto displayName = TimelineViewManager::displayName(event.sender()); - generateBody(displayName, body); setupAvatarLayout(displayName);