From 8ad01f520af30bfd2d3441a2b893ec71d5e220ea Mon Sep 17 00:00:00 2001 From: Konstantinos Sideris Date: Thu, 6 Sep 2018 22:34:41 +0300 Subject: Add initial support for displaying formatted messages --- src/timeline/TimelineItem.cpp | 37 +++++++++++++++++-------------------- 1 file changed, 17 insertions(+), 20 deletions(-) (limited to 'src/timeline/TimelineItem.cpp') diff --git a/src/timeline/TimelineItem.cpp b/src/timeline/TimelineItem.cpp index 8726ec59..7548a5a5 100644 --- a/src/timeline/TimelineItem.cpp +++ b/src/timeline/TimelineItem.cpp @@ -436,7 +436,9 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent"); - body = "" + body + ""; + formatted_body = "" + formatted_body + ""; if (with_sender) { auto displayName = Cache::displayName(room_id_, sender); - generateBody(sender, displayName, body); + generateBody(sender, displayName, formatted_body); setupAvatarLayout(displayName); AvatarProvider::resolve( room_id_, sender, this, [this](const QImage &img) { setUserAvatar(img); }); } else { - generateBody(body); + generateBody(formatted_body); setupSimpleLayout(); } @@ -484,26 +484,25 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent event_id_ = QString::fromStdString(event.event_id); const auto sender = QString::fromStdString(event.sender); - auto body = QString::fromStdString(event.content.body).trimmed(); + auto formatted_body = utils::get_message_body(event).trimmed(); + auto body = QString::fromStdString(event.content.body).trimmed(); + auto timestamp = QDateTime::fromMSecsSinceEpoch(event.origin_server_ts); auto displayName = Cache::displayName(room_id_, sender); - auto emoteMsg = QString("* %1 %2").arg(displayName).arg(body); + auto emoteMsg = QString("* %1 %2").arg(displayName).arg(formatted_body); descriptionMsg_ = {"", sender, emoteMsg, utils::descriptiveTime(timestamp), timestamp}; generateTimestamp(timestamp); - emoteMsg = emoteMsg.toHtmlEscaped(); - emoteMsg.replace(conf::strings::url_regex, conf::strings::url_html); - emoteMsg.replace("\n", "
"); if (with_sender) { - generateBody(sender, displayName, emoteMsg); + generateBody(sender, displayName, formatted_body); setupAvatarLayout(displayName); AvatarProvider::resolve( room_id_, sender, this, [this](const QImage &img) { setUserAvatar(img); }); } else { - generateBody(emoteMsg); + generateBody(formatted_body); setupSimpleLayout(); } @@ -528,7 +527,9 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent event_id_ = QString::fromStdString(event.event_id); const auto sender = QString::fromStdString(event.sender); - auto body = QString::fromStdString(event.content.body).trimmed(); + auto formatted_body = utils::get_message_body(event).trimmed(); + auto body = QString::fromStdString(event.content.body).trimmed(); + auto timestamp = QDateTime::fromMSecsSinceEpoch(event.origin_server_ts); auto displayName = Cache::displayName(room_id_, sender); @@ -541,18 +542,14 @@ TimelineItem::TimelineItem(const mtx::events::RoomEvent generateTimestamp(timestamp); - body = body.toHtmlEscaped(); - body.replace(conf::strings::url_regex, conf::strings::url_html); - body.replace("\n", "
"); - if (with_sender) { - generateBody(sender, displayName, body); + generateBody(sender, displayName, formatted_body); setupAvatarLayout(displayName); AvatarProvider::resolve( room_id_, sender, this, [this](const QImage &img) { setUserAvatar(img); }); } else { - generateBody(body); + generateBody(formatted_body); setupSimpleLayout(); } -- cgit 1.5.1