From: Claudio Cambra Date: Sun, 20 Oct 2024 17:46:56 +0000 (+0800) Subject: Add ability to fetch remote server avatars in usermodel avatar ImageResponse X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~5^2~14^2~8 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=bc74c5a88760c6968122d9aced4361a4bde35652;p=nextcloud-desktop.git Add ability to fetch remote server avatars in usermodel avatar ImageResponse Signed-off-by: Claudio Cambra --- diff --git a/src/gui/tray/usermodel.cpp b/src/gui/tray/usermodel.cpp index c094b5090..5c493f813 100644 --- a/src/gui/tray/usermodel.cpp +++ b/src/gui/tray/usermodel.cpp @@ -1642,6 +1642,25 @@ public: return; } + if (id.startsWith("user-id=")) { + // Format is "image://avatars/user-id=avatar-requested-user/local-user-id:0" + const auto userIdsString = id.split('='); + const auto userIds = userIdsString.last().split("/local-account:"); + const auto avatarUserId = userIds.first(); + const auto accountString = userIds.last(); + const auto accountState = AccountManager::instance()->account(accountString); + Q_ASSERT(accountState); + if (!accountState) { + qCWarning(lcActivity) << "Account not found:" << accountString; + return; + } + const auto avatarJob = new AvatarJob(accountState->account(), avatarUserId, requestedSize.width()); + connect(avatarJob, &AvatarJob::avatarPixmap, this, [&](const QImage &avatarImg) { + handleDone(AvatarJob::makeCircularAvatar(avatarImg)); + }); + avatarJob->start(); + return; + } handleDone(UserModel::instance()->avatarById(id.toInt())); }