diff --git a/src/native/pixbufmanipulator.cpp b/src/native/pixbufmanipulator.cpp index f1d9188db4555d2da59d0c9bceeaf6fa0333f4fb..588912881b0f988788f9e6a04e47aba964f0525c 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));