summary refs log tree commit diff
path: root/src/timeline/TimelineModel.cpp
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2020-04-30 00:04:30 +0200
committerNicolas Werner <nicolas.werner@hotmail.de>2020-04-30 00:04:30 +0200
commit0716bbafff4edc812b97bd3a963db3577e244b38 (patch)
tree1385a0bee56ee04b2431a37c6bac43dbf86b6fa4 /src/timeline/TimelineModel.cpp
parentMerge pull request #183 from shocklateboy92/features/smooth-scroll (diff)
downloadnheko-0716bbafff4edc812b97bd3a963db3577e244b38.tar.xz
Strip reply fallback from plain text body
Diffstat (limited to 'src/timeline/TimelineModel.cpp')
-rw-r--r--src/timeline/TimelineModel.cpp22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index e3a1a781..97b95258 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -853,12 +853,22 @@ TimelineModel::relatedInfo(QString id)
                 event = decryptEvent(*e).event;
         }
 
-        RelatedInfo related           = {};
-        related.quoted_user           = QString::fromStdString(mtx::accessors::sender(event));
-        related.related_event         = mtx::accessors::event_id(event);
-        related.type                  = mtx::accessors::msg_type(event);
-        related.quoted_body           = QString::fromStdString(mtx::accessors::body(event));
-        related.quoted_body           = utils::getQuoteBody(related);
+        RelatedInfo related   = {};
+        related.quoted_user   = QString::fromStdString(mtx::accessors::sender(event));
+        related.related_event = mtx::accessors::event_id(event);
+        related.type          = mtx::accessors::msg_type(event);
+
+        // get body, strip reply fallback, then transform the event to text, if it is a media event
+        // etc
+        related.quoted_body = QString::fromStdString(mtx::accessors::body(event));
+        QRegularExpression plainQuote("^>.*?$\n?", QRegularExpression::MultilineOption);
+        while (related.quoted_body.startsWith(">"))
+                related.quoted_body.remove(plainQuote);
+        if (related.quoted_body.startsWith("\n"))
+                related.quoted_body.remove(0, 1);
+        related.quoted_body = utils::getQuoteBody(related);
+
+        // get quoted body and strip reply fallback
         related.quoted_formatted_body = mtx::accessors::formattedBodyWithFallback(event);
         related.quoted_formatted_body.remove(QRegularExpression(
           "<mx-reply>.*</mx-reply>", QRegularExpression::DotMatchesEverythingOption));