summary refs log tree commit diff
path: root/src/notifications
diff options
context:
space:
mode:
authorLoren Burkholder <computersemiexpert@outlook.com>2021-02-26 15:38:15 -0500
committerNicolas Werner <nicolas.werner@hotmail.de>2021-03-17 19:18:06 +0100
commit3748d7853e196d0d34571caf8cd1957ea001e68f (patch)
tree916fce852e8c688d92e816d901f0c109ec2b4122 /src/notifications
parentBetter handle encrypted notifications (diff)
downloadnheko-3748d7853e196d0d34571caf8cd1957ea001e68f.tar.xz
Simplify formatting on Windows
Diffstat (limited to 'src/notifications')
-rw-r--r--src/notifications/Manager.h7
-rw-r--r--src/notifications/ManagerWin.cpp44
2 files changed, 22 insertions, 29 deletions
diff --git a/src/notifications/Manager.h b/src/notifications/Manager.h
index ef049914..d7820b18 100644
--- a/src/notifications/Manager.h
+++ b/src/notifications/Manager.h
@@ -84,10 +84,9 @@ private:
 
 #if defined(Q_OS_WINDOWS)
 private:
-        void systemPostNotification(const QString &roomName,
-                                    const QString &sender,
-                                    const QString &text,
-                                    const QImage &icon);
+        void systemPostNotification(const QString &line1,
+                                    const QString &line2,
+                                    const QString &iconPath);
 #endif
 
         // these slots are platform specific (D-Bus only)
diff --git a/src/notifications/ManagerWin.cpp b/src/notifications/ManagerWin.cpp
index 5b134c0b..9c45d166 100644
--- a/src/notifications/ManagerWin.cpp
+++ b/src/notifications/ManagerWin.cpp
@@ -60,39 +60,33 @@ NotificationsManager::postNotification(const mtx::responses::Notification &notif
             &notification.event) != nullptr;
         const auto isReply = utils::isReply(notification.event);
 
-        if (isEncrypted) {
-                // TODO: decrypt this message if the decryption setting is on in the UserSettings
-                const QString text = (isReply ? tr("%1 replied with an encrypted message")
-                                              : tr("%1 sent an encrypted message"))
-                                       .arg(sender);
-                systemPostNotification(room_name, sender, text, icon);
-        } else {
-                systemPostNotification(room_name, sender, formatNotification(notification), icon);
-        }
-
-        systemPostNotification(room_name, sender, text, icon);
+        const auto line1 =
+          (room_name == sender) ? sender : QString("%1 - %2").arg(sender).arg(room_name);
+        const auto line2 = (isEncrypted ? (isReply ? tr("%1 replied with an encrypted message")
+                                                   : tr("%1 sent an encrypted message"))
+                                        : formatNotification(notification));
+
+        auto iconPath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) +
+                        room_name + "-room-avatar.png";
+        if (!icon.save(iconPath))
+                iconPath.clear();
+
+        systemPostNotification(line1, line2, iconPath);
 }
 
 void
-NotificationsManager::systemPostNotification(const QString &roomName,
-                                             const QString &sender,
-                                             const QString &text,
-                                             const QImage &icon)
+NotificationsManager::systemPostNotification(const QString &line1,
+                                             const QString &line2,
+                                             const QString &iconPath)
 {
         if (!isInitialized)
                 init();
 
         auto templ = WinToastTemplate(WinToastTemplate::ImageAndText02);
-        if (roomName != sender)
-                templ.setTextField(QString("%1 - %2").arg(sender).arg(roomName).toStdWString(),
-                                   WinToastTemplate::FirstLine);
-        else
-                templ.setTextField(sender.toStdWString(), WinToastTemplate::FirstLine);
-        templ.setTextField(text.toStdWString(), WinToastTemplate::SecondLine);
-
-        auto iconPath = QStandardPaths::writableLocation(QStandardPaths::CacheLocation) + roomName +
-                        "-room-avatar.png";
-        if (icon.save(iconPath))
+        templ.setTextField(line1.toStdWString(), WinToastTemplate::FirstLine);
+        templ.setTextField(line2.toStdWString(), WinToastTemplate::SecondLine);
+
+        if (!iconPath.isNull())
                 templ.setImagePath(iconPath.toStdWString());
 
         WinToast::instance()->showToast(templ, new CustomHandler());