diff options
author | Loren Burkholder <computersemiexpert@outlook.com> | 2021-02-26 15:38:15 -0500 |
---|---|---|
committer | Nicolas Werner <nicolas.werner@hotmail.de> | 2021-03-17 19:18:06 +0100 |
commit | 3748d7853e196d0d34571caf8cd1957ea001e68f (patch) | |
tree | 916fce852e8c688d92e816d901f0c109ec2b4122 /src/notifications | |
parent | Better handle encrypted notifications (diff) | |
download | nheko-3748d7853e196d0d34571caf8cd1957ea001e68f.tar.xz |
Simplify formatting on Windows
Diffstat (limited to 'src/notifications')
-rw-r--r-- | src/notifications/Manager.h | 7 | ||||
-rw-r--r-- | src/notifications/ManagerWin.cpp | 44 |
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 ¬if ¬ification.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()); |