From 92a3d032060d5695f6e06036c02e4037027667e9 Mon Sep 17 00:00:00 2001 From: Andreas Traczyk <andreas.traczyk@savoirfairelinux.com> Date: Tue, 13 Jul 2021 19:11:28 -0400 Subject: [PATCH] conference: fix participant overlay avatars Gitlab: #466 Change-Id: Id7bd241c3c88dfba90505dd399127d5ceedbf028 --- src/calladapter.cpp | 7 ------ .../components/ParticipantOverlay.qml | 22 +++++++++---------- src/mainview/components/ParticipantsLayer.qml | 4 ++-- src/utils.cpp | 3 ++- 4 files changed, 14 insertions(+), 22 deletions(-) diff --git a/src/calladapter.cpp b/src/calladapter.cpp index b4f9a6625..caefa31fb 100644 --- a/src/calladapter.cpp +++ b/src/calladapter.cpp @@ -495,17 +495,10 @@ CallAdapter::fillParticipantData(QMap<QString, QString> participant) if (bestName == accInfo.profileInfo.uri) { bestName = tr("me"); data["isLocal"] = true; - if (participant["videoMuted"] == "true") - data["avatar"] = accInfo.profileInfo.avatar; } else { try { - auto& contact = lrcInstance_->getCurrentAccountInfo().contactModel->getContact( - participant["uri"]); bestName = lrcInstance_->getCurrentAccountInfo().contactModel->bestNameForContact( participant["uri"]); - if (participant["videoMuted"] == "true") - data["avatar"] = contact.profileInfo.avatar; - data["isContact"] = true; } catch (...) { } } diff --git a/src/mainview/components/ParticipantOverlay.qml b/src/mainview/components/ParticipantOverlay.qml index dc7aad32e..a223b4178 100644 --- a/src/mainview/components/ParticipantOverlay.qml +++ b/src/mainview/components/ParticipantOverlay.qml @@ -52,20 +52,18 @@ Item { z: 1 - function setAvatar(show, base64, uri, local, isContact) { + function setAvatar(show, uri, isLocal) { if (!show) - contactImage.visible = false + avatar.visible = false else { - if (local) { - contactImage.imageId = LRCInstance.currentAccountId - } else if (isContact) { - contactImage.avatarMode = AvatarImage.AvatarMode.FromContactUri - contactImage.updateImage(uri) + if (isLocal) { + avatar.mode = Avatar.Mode.Account + avatar.imageId = LRCInstance.currentAccountId } else { - contactImage.avatarMode = AvatarImage.AvatarMode.FromTemporaryName - contactImage.updateImage(uri) + avatar.mode = Avatar.Mode.Contact + avatar.imageId = uri } - contactImage.visible = true + avatar.visible = true } } @@ -169,8 +167,8 @@ Item { } } - ConversationAvatar { - id: contactImage + Avatar { + id: avatar anchors.centerIn: parent height: Math.min(parent.width / 2, parent.height / 2) diff --git a/src/mainview/components/ParticipantsLayer.qml b/src/mainview/components/ParticipantsLayer.qml index a147611a2..993f1f7be 100644 --- a/src/mainview/components/ParticipantsLayer.qml +++ b/src/mainview/components/ParticipantsLayer.qml @@ -77,7 +77,7 @@ Item { participantOverlays[p].setMenu(participant.uri, participant.bestName, participant.isLocal, participant.active, showMax) if (participant.videoMuted) - participantOverlays[p].setAvatar(true, participant.avatar, participant.uri, participant.isLocal, participant.isContact) + participantOverlays[p].setAvatar(true, participant.uri, participant.isLocal) else participantOverlays[p].setAvatar(false) currentUris.push(participantOverlays[p].uri) @@ -120,7 +120,7 @@ Item { hover.setMenu(infos[infoVariant].uri, infos[infoVariant].bestName, infos[infoVariant].isLocal, infos[infoVariant].active, showMax) if (infos[infoVariant].videoMuted) - hover.setAvatar(true, infos[infoVariant].avatar, infos[infoVariant].uri, infos[infoVariant].isLocal, infos[infoVariant].isContact) + hover.setAvatar(true, infos[infoVariant].uri, infos[infoVariant].isLocal) else hover.setAvatar(false) participantOverlays.push(hover) diff --git a/src/utils.cpp b/src/utils.cpp index ddb03be5f..c707784f5 100644 --- a/src/utils.cpp +++ b/src/utils.cpp @@ -376,7 +376,8 @@ Utils::contactPhoto(LRCInstance* instance, photo = Utils::fallbackAvatar("ring:" + contactInfo.profileInfo.uri, avatarName); } } catch (const std::exception& e) { - qDebug() << Q_FUNC_INFO << e.what(); + qDebug() << e.what() << "; Using default avatar"; + photo = fallbackAvatar("jami:" + contactUri, QString(), size); } return Utils::scaleAndFrame(photo, size); } -- GitLab