Fetch user avatars while browsing the member list
3 files changed, 19 insertions, 1 deletions
diff --git a/include/dialogs/MemberList.hpp b/include/dialogs/MemberList.hpp
index 09a56aab..bdc11486 100644
--- a/include/dialogs/MemberList.hpp
+++ b/include/dialogs/MemberList.hpp
@@ -45,9 +45,15 @@ public slots:
protected:
void paintEvent(QPaintEvent *event) override;
- void moveButtonToBottom();
+ void hideEvent(QHideEvent *event) override
+ {
+ list_->clear();
+ QFrame::hideEvent(event);
+ }
private:
+ void moveButtonToBottom();
+
QString room_id_;
QLabel *topLabel_;
QListWidget *list_;
diff --git a/include/dialogs/ReadReceipts.h b/include/dialogs/ReadReceipts.h
index bd4e4fc5..5e5615df 100644
--- a/include/dialogs/ReadReceipts.h
+++ b/include/dialogs/ReadReceipts.h
@@ -44,6 +44,11 @@ public slots:
protected:
void paintEvent(QPaintEvent *event) override;
+ void hideEvent(QHideEvent *event) override
+ {
+ userList_->clear();
+ QFrame::hideEvent(event);
+ }
private:
QLabel *topLabel_;
diff --git a/src/dialogs/MemberList.cpp b/src/dialogs/MemberList.cpp
index 26f526dd..2d435026 100644
--- a/src/dialogs/MemberList.cpp
+++ b/src/dialogs/MemberList.cpp
@@ -3,6 +3,8 @@
#include <QStyleOption>
#include <QVBoxLayout>
+#include "AvatarProvider.h"
+#include "ChatPage.h"
#include "Config.h"
#include "FlatButton.h"
#include "Utils.h"
@@ -29,6 +31,11 @@ MemberItem::MemberItem(const RoomMember &member, QWidget *parent)
if (!member.avatar.isNull())
avatar_->setImage(member.avatar);
+ else
+ AvatarProvider::resolve(ChatPage::instance()->currentRoom(),
+ member.user_id,
+ this,
+ [this](const QImage &img) { avatar_->setImage(img); });
QFont nameFont, idFont;
nameFont.setWeight(65);
|