diff --git a/lib/channel-contact-model.cpp b/lib/channel-contact-model.cpp --- a/lib/channel-contact-model.cpp +++ b/lib/channel-contact-model.cpp @@ -22,11 +22,21 @@ #include "ktp-debug.h" #include +#include #include Q_DECLARE_METATYPE(Tp::ContactPtr) +static QPixmap genericAvatar() +{ + static QPixmap avatar; + if (avatar.isNull()) { + avatar = KIconLoader::global()->loadIcon(QLatin1String("im-user"), KIconLoader::NoGroup); + } + return avatar; +} + ChannelContactModel::ChannelContactModel(const Tp::TextChannelPtr &channel, QObject *parent) : QAbstractListModel(parent) { @@ -98,8 +108,13 @@ return contact->clientTypes(); case KTp::ContactAvatarPathRole: return contact->avatarData().fileName; - case KTp::ContactAvatarPixmapRole: - return contact->avatarPixmap(); + case KTp::ContactAvatarPixmapRole: { + const QPixmap avatar = contact->avatarPixmap(); + if (avatar.isNull()) { + return genericAvatar(); + } + return avatar; + } case KTp::ContactGroupsRole: return contact->groups();