From f676979b295fe58102173779f12c201e09103d93 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Mon, 20 Feb 2023 14:49:06 +0100 Subject: [PATCH 1/2] Set placeholder image always as account action icon, as at app start there will not be a valid avatar to use ever Signed-off-by: Claudio Cambra --- src/gui/settingsdialog.cpp | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index ad6f9ea39..54c5fc63f 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -234,16 +234,8 @@ void SettingsDialog::accountAdded(AccountState *s) auto height = _toolBar->sizeHint().height(); bool brandingSingleAccount = !Theme::instance()->multiAccount(); - QAction *accountAction = nullptr; - QImage avatar = s->account()->avatar(); - const QString actionText = brandingSingleAccount ? tr("Account") : s->account()->displayName(); - if (avatar.isNull()) { - accountAction = createColorAwareAction(QLatin1String(":/client/theme/account.svg"), - actionText); - } else { - QIcon icon(QPixmap::fromImage(AvatarJob::makeCircularAvatar(avatar))); - accountAction = createActionWithIcon(icon, actionText); - } + const auto actionText = brandingSingleAccount ? tr("Account") : s->account()->displayName(); + const auto accountAction = createColorAwareAction(QLatin1String(":/client/theme/account.svg"), actionText); if (!brandingSingleAccount) { accountAction->setToolTip(s->account()->displayName()); From a0107c43f1d905bd0a399adc33c1c8298583cbc6 Mon Sep 17 00:00:00 2001 From: Claudio Cambra Date: Mon, 20 Feb 2023 14:51:02 +0100 Subject: [PATCH 2/2] Fetch account avatar info on account action construction, fixing avatar only showing up when action is clicked Signed-off-by: Claudio Cambra --- src/gui/settingsdialog.cpp | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/gui/settingsdialog.cpp b/src/gui/settingsdialog.cpp index 54c5fc63f..80bd597d5 100644 --- a/src/gui/settingsdialog.cpp +++ b/src/gui/settingsdialog.cpp @@ -263,6 +263,15 @@ void SettingsDialog::accountAdded(AccountState *s) // Connect styleChanged event, to adapt (Dark-/Light-Mode switching) connect(this, &SettingsDialog::styleChanged, accountSettings, &AccountSettings::slotStyleChanged); + + const auto userInfo = new UserInfo(s, false, true, this); + connect(userInfo, &UserInfo::fetchedLastInfo, this, [userInfo](const UserInfo *fetchedInfo) { + // UserInfo will go and update the account avatar + Q_UNUSED(fetchedInfo); + userInfo->deleteLater(); + }); + userInfo->setActive(true); + userInfo->slotFetchInfo(); } void SettingsDialog::slotAccountAvatarChanged()