diff --git a/include/TopRoomBar.h b/include/TopRoomBar.h index bfc5a08f73ae0af0ceaaf21fcaff506e9f14f845..1544ad46b8aa96dc7069f619bc48710e54469d99 100644 --- a/include/TopRoomBar.h +++ b/include/TopRoomBar.h @@ -39,6 +39,7 @@ public: inline void updateRoomAvatar(const QIcon &icon); inline void updateRoomName(const QString &name); inline void updateRoomTopic(const QString &topic); + void updateRoomAvatarFromName(const QString &name); void reset(); diff --git a/src/ChatPage.cc b/src/ChatPage.cc index e6b05c1db8d492886ae62fef7e21779d61f31ed2..a5e86f1f37407947cfb24a4ebf890d37c7d3c0d1 100644 --- a/src/ChatPage.cc +++ b/src/ChatPage.cc @@ -292,6 +292,8 @@ void ChatPage::changeTopRoomInfo(const RoomInfo &info) if (room_avatars_.contains(info.id())) { QIcon icon(room_avatars_.value(info.id())); top_bar_->updateRoomAvatar(icon); + } else { + top_bar_->updateRoomAvatarFromName(info.name()); } current_room_ = info; diff --git a/src/TopRoomBar.cc b/src/TopRoomBar.cc index 3c05a953d51c2de984e825e93c713ab9570c2a15..adff71b098858ed6473158dfca086e647817d64b 100644 --- a/src/TopRoomBar.cc +++ b/src/TopRoomBar.cc @@ -77,6 +77,16 @@ TopRoomBar::TopRoomBar(QWidget *parent) setLayout(top_layout_); } +void TopRoomBar::updateRoomAvatarFromName(const QString &name) +{ + QChar letter = '?'; + + if (name.size() > 0) + letter = name[0]; + + avatar_->setLetter(letter); +} + void TopRoomBar::reset() { name_label_->setText("");