Skip to content
Snippets Groups Projects
Verified Commit 64dd10a6 authored by Loren Burkholder's avatar Loren Burkholder Committed by Nicolas Werner
Browse files

Only try to display images if they exist

parent 82bbdfb9
No related branches found
No related tags found
No related merge requests found
......@@ -24,7 +24,7 @@ NotificationsManager::cacheImage(const mtx::events::collections::TimelineEvents
http::client()->download(
url,
[path, url, encryptionInfo](const std::string &data,
[&path, url, encryptionInfo](const std::string &data,
const std::string &,
const std::string &,
mtx::http::RequestErr err) {
......@@ -53,10 +53,11 @@ NotificationsManager::cacheImage(const mtx::events::collections::TimelineEvents
// resize the image
QImage img{utils::readImage(QByteArray{temp.data()})};
// make sure to save as PNG (because Plasma doesn't do JPEG in
// notifications)
// if (!file.fileName().endsWith(".png"))
// file.rename(file.fileName() + ".png");
if (img.isNull())
{
path.clear();
return;
}
#ifdef NHEKO_DBUS_SYS // the images in D-Bus notifications are to be 200x100 max
img.scaled(200, 100, Qt::KeepAspectRatio, Qt::SmoothTransformation)
......
......@@ -216,12 +216,18 @@ NotificationsManager::formatNotification(const mtx::responses::Notification &not
if (hasMarkup_) {
if (hasImages_ &&
mtx::accessors::msg_type(notification.event) == mtx::events::MessageType::Image)
{
QString imgPath = cacheImage(notification.event);
if (imgPath.isNull())
return mtx::accessors::formattedBodyWithFallback(notification.event).prepend(messageLeadIn);
else
return QString(
"<img src=\"file:///" + cacheImage(notification.event) +
"<img src=\"file:///" + imgPath +
"\" alt=\"" +
mtx::accessors::formattedBodyWithFallback(notification.event) +
"\">")
.prepend(messageLeadIn);
}
return mtx::accessors::formattedBodyWithFallback(notification.event)
.prepend(messageLeadIn)
......
......@@ -58,6 +58,6 @@ NotificationsManager::postNotification(const mtx::responses::Notification &notif
const QString messageInfo =
(isReply ? tr("%1 replied to a message") : tr("%1 sent a message")).arg(sender);
objCxxPostNotification(
room_name, messageInfo, formatNotification(notification), image);
room_name, messageInfo, formatNotification(notification), (image != nullptr && !image->isNull()) ? image : nullptr);
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment