From e20171fed4e4daf0ff2b8c42704a55df59c9921f Mon Sep 17 00:00:00 2001 From: Amin Bandali <amin.bandali@savoirfairelinux.com> Date: Tue, 10 Nov 2020 14:25:47 -0500 Subject: [PATCH] pixbufmanipulator: use default letter avatar for corrupted avatars For cases where GDK_IS_PIXBUF returns FALSE on an avatar, use one created by the generateAvatar function as a fallback, to avoid warnings and trying to show a corrupted avatar. Change-Id: I87c88056c643666de1e77849ea77e7c749689744 --- src/native/pixbufmanipulator.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/native/pixbufmanipulator.cpp b/src/native/pixbufmanipulator.cpp index f1d9188d..58891288 100644 --- a/src/native/pixbufmanipulator.cpp +++ b/src/native/pixbufmanipulator.cpp @@ -213,7 +213,16 @@ PixbufManipulator::conversationPhoto(const lrc::api::conversation::Info& convers } else if (!contactPhoto.isEmpty()) { QByteArray byteArray = contactPhoto.toUtf8(); QVariant photo = personPhoto(byteArray); - return QVariant::fromValue(scaleAndFrame(photo.value<std::shared_ptr<GdkPixbuf>>().get(), size, displayInformation, status, unreadMessages)); + if (GDK_IS_PIXBUF(photo.value<std::shared_ptr<GdkPixbuf>>().get())) { + return QVariant::fromValue(scaleAndFrame( + photo.value<std::shared_ptr<GdkPixbuf>>().get(), size, + displayInformation, status, unreadMessages)); + } else { + return QVariant::fromValue(scaleAndFrame( + generateAvatar(bestName.toStdString(), + "ring:" + contactInfo.profileInfo.uri.toStdString()).get(), + size, displayInformation, status, unreadMessages)); + } } else { return QVariant::fromValue(scaleAndFrame(generateAvatar(bestName.toStdString(), "ring:" + contactInfo.profileInfo.uri.toStdString()).get(), size, displayInformation, status, unreadMessages)); -- GitLab