diff --git a/src/timeline/InputBar.cpp b/src/timeline/InputBar.cpp
index 3cddd613..49dd837b 100644
--- a/src/timeline/InputBar.cpp
+++ b/src/timeline/InputBar.cpp
@@ -251,12 +251,12 @@ InputBar::openFileSelection()
}
void
-InputBar::message(QString msg)
+InputBar::message(QString msg, MarkdownOverride useMarkdown)
{
mtx::events::msg::Text text = {};
text.body = msg.trimmed().toStdString();
- if (ChatPage::instance()->userSettings()->markdown()) {
+ if ((ChatPage::instance()->userSettings()->markdown() && (useMarkdown != MarkdownOverride::OFF)) || (useMarkdown == MarkdownOverride::ON)) {
text.formatted_body = utils::markdownToHtml(msg).toStdString();
// Don't send formatted_body, when we don't need to
@@ -477,6 +477,10 @@ InputBar::command(QString command, QString args)
room->clearTimeline();
} else if (command == "rotate-megolm-session") {
cache::dropOutboundMegolmSession(room->roomId().toStdString());
+ } else if (command == "md") {
+ message(args, MarkdownOverride::ON);
+ } else if (command == "plain") {
+ message(args, MarkdownOverride::OFF);
}
}
diff --git a/src/timeline/InputBar.h b/src/timeline/InputBar.h
index c729a6fc..75bcdc3a 100644
--- a/src/timeline/InputBar.h
+++ b/src/timeline/InputBar.h
@@ -12,6 +12,13 @@ class QMimeData;
class QDropEvent;
class QStringList;
+enum class MarkdownOverride
+{
+ NONE, // no override set
+ ON,
+ OFF,
+};
+
class InputBar : public QObject
{
Q_OBJECT
@@ -41,7 +48,7 @@ public slots:
void updateState(int selectionStart, int selectionEnd, int cursorPosition, QString text);
void openFileSelection();
bool uploading() const { return uploading_; }
- void message(QString body);
+ void message(QString body, MarkdownOverride useMarkdown = MarkdownOverride::NONE);
QObject *completerFor(QString completerName);
|