diff --git a/src/notifications/Manager.cpp b/src/notifications/Manager.cpp
index eee695a5..e1f59cb1 100644
--- a/src/notifications/Manager.cpp
+++ b/src/notifications/Manager.cpp
@@ -27,7 +27,7 @@ NotificationsManager::postNotification(const mtx::responses::Notification ¬if
((mtx::accessors::msg_type(notification.event) == mtx::events::MessageType::Emote)
? "* " + sender + " "
: sender + reply + ": ") +
- formatNotification(mtx::accessors::formattedBodyWithFallback(notification.event));
+ formatNotification(notification.event);
systemPostNotification(room_id, event_id, room_name, sender, text, icon);
}
diff --git a/src/notifications/Manager.h b/src/notifications/Manager.h
index 372e4998..449a609f 100644
--- a/src/notifications/Manager.h
+++ b/src/notifications/Manager.h
@@ -50,7 +50,7 @@ private:
const QString &text,
const QImage &icon);
- QString formatNotification(const QString &text);
+ QString formatNotification(const mtx::events::collections::TimelineEvents &e);
#if defined(Q_OS_LINUX) || defined(Q_OS_FREEBSD) || defined(Q_OS_HAIKU)
public:
diff --git a/src/notifications/ManagerLinux.cpp b/src/notifications/ManagerLinux.cpp
index ab4a6d93..202f2a9d 100644
--- a/src/notifications/ManagerLinux.cpp
+++ b/src/notifications/ManagerLinux.cpp
@@ -11,6 +11,7 @@
#include <functional>
+#include "EventAccessors.h"
#include "Utils.h"
NotificationsManager::NotificationsManager(QObject *parent)
@@ -161,7 +162,7 @@ NotificationsManager::notificationClosed(uint id, uint reason)
* specified at https://www.freedesktop.org/wiki/Specifications/StatusNotifierItem/Markup/
*/
QString
-NotificationsManager::formatNotification(const QString &text)
+NotificationsManager::formatNotification(const mtx::events::collections::TimelineEvents &e)
{
static const auto hasMarkup = std::invoke([this]() -> bool {
for (auto x : dbus.call("GetCapabilities").arguments())
@@ -169,14 +170,16 @@ NotificationsManager::formatNotification(const QString &text)
return true;
return false;
});
+
if (hasMarkup)
- return QString(text)
+ return mtx::accessors::formattedBodyWithFallback(e)
.replace("<em>", "<i>")
.replace("</em>", "</i>")
.replace("<strong>", "<b>")
.replace("</strong>", "</b>");
- return QTextDocumentFragment::fromHtml(text).toPlainText();
+ return QTextDocumentFragment::fromHtml(mtx::accessors::formattedBodyWithFallback(e))
+ .toPlainText();
}
/**
diff --git a/src/notifications/ManagerMac.cpp b/src/notifications/ManagerMac.cpp
index c75d2283..a74df2c7 100644
--- a/src/notifications/ManagerMac.cpp
+++ b/src/notifications/ManagerMac.cpp
@@ -2,10 +2,11 @@
#include <QTextDocumentFragment>
+#include "EventAccessors.h"
#include "Utils.h"
QString
-NotificationsManager::formatNotification(const QString &text)
+NotificationsManager::formatNotification(const mtx::events::collections::TimelineEvents &e)
{
- return QTextDocumentFragment::fromHtml(text).toPlainText();
+ return QTextDocumentFragment::fromHtml(mtx::accessors::formattedBodyWithFallback(e)).toPlainText();
}
diff --git a/src/notifications/ManagerWin.cpp b/src/notifications/ManagerWin.cpp
index 3ab85a5f..47b4c178 100644
--- a/src/notifications/ManagerWin.cpp
+++ b/src/notifications/ManagerWin.cpp
@@ -7,6 +7,7 @@
#include <QTextDocumentFragment>
+#include "EventAccessors.h"
#include "Utils.h"
using namespace WinToastLib;
@@ -77,7 +78,8 @@ NotificationsManager::removeNotification(const QString &, const QString &)
{}
QString
-NotificationsManager::formatNotification(const QString &text)
+NotificationsManager::formatNotification(const mtx::events::collections::TimelineEvents &e)
{
- return QTextDocumentFragment::fromHtml(text).toPlainText();
+ return QTextDocumentFragment::fromHtml(mtx::accessors::formattedBodyWithFallback(e)).toPlainText();
}
+
|