diff options
author | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-09-13 11:02:54 +0300 |
---|---|---|
committer | Konstantinos Sideris <sideris.konstantin@gmail.com> | 2018-09-13 11:02:54 +0300 |
commit | bf4d559523e956523a617213fa1cc3c36fab24e4 (patch) | |
tree | 58155f4efbb364dab13245313d742a846ed6f51e /src/timeline | |
parent | Use <em></em> for m.emote messages (diff) | |
download | nheko-bf4d559523e956523a617213fa1cc3c36fab24e4.tar.xz |
Strip paragraph tags
fixes #438
Diffstat (limited to 'src/timeline')
-rw-r--r-- | src/timeline/TimelineItem.cpp | 11 | ||||
-rw-r--r-- | src/timeline/TimelineView.cpp | 12 |
2 files changed, 13 insertions, 10 deletions
diff --git a/src/timeline/TimelineItem.cpp b/src/timeline/TimelineItem.cpp index c4abe7cf..cd12207c 100644 --- a/src/timeline/TimelineItem.cpp +++ b/src/timeline/TimelineItem.cpp @@ -310,11 +310,12 @@ TimelineItem::TimelineItem(mtx::events::MessageType ty, auto displayName = Cache::displayName(room_id_, userid); auto timestamp = QDateTime::currentDateTime(); - // Generate the html body to rendered. + // Generate the html body to be rendered. auto formatted_body = utils::markdownToHtml(body); - // Extract the plain text version for the sidebar. - body = QString::fromStdString(utils::stripHtml(formatted_body)); + // Escape html if the input is not formatted. + if (formatted_body == body.trimmed().toHtmlEscaped()) + formatted_body = body.toHtmlEscaped(); if (ty == mtx::events::MessageType::Emote) { formatted_body = QString("<em>%1</em>").arg(formatted_body); @@ -651,9 +652,7 @@ TimelineItem::markReceived(bool isEncrypted) void TimelineItem::generateBody(const QString &body) { - QString content("<span>%1</span>"); - - body_ = new TextLabel(content.arg(replaceEmoji(body)), this); + body_ = new TextLabel(replaceEmoji(body), this); body_->setFont(font_); body_->setTextInteractionFlags(Qt::TextSelectableByMouse | Qt::TextBrowserInteraction); } diff --git a/src/timeline/TimelineView.cpp b/src/timeline/TimelineView.cpp index 08d506bf..90e116c1 100644 --- a/src/timeline/TimelineView.cpp +++ b/src/timeline/TimelineView.cpp @@ -1236,8 +1236,10 @@ toRoomMessage<mtx::events::msg::Emote>(const PendingMessage &m) auto html = utils::markdownToHtml(m.body); mtx::events::msg::Emote emote; - emote.body = utils::stripHtml(html); - emote.formatted_body = html.toStdString(); + emote.body = m.body.trimmed().toStdString(); + + if (html != m.body.trimmed().toHtmlEscaped()) + emote.formatted_body = html.toStdString(); return emote; } @@ -1261,8 +1263,10 @@ toRoomMessage<mtx::events::msg::Text>(const PendingMessage &m) auto html = utils::markdownToHtml(m.body); mtx::events::msg::Text text; - text.body = utils::stripHtml(html); - text.formatted_body = html.toStdString(); + text.body = m.body.trimmed().toStdString(); + + if (html != m.body.trimmed().toHtmlEscaped()) + text.formatted_body = html.toStdString(); return text; } |