From 1c9e92b8bd3e6aee73e7046860881a64107f4c95 Mon Sep 17 00:00:00 2001
From: Konstantinos Sideris <sideris.konstantin@gmail.com>
Date: Mon, 10 Apr 2017 19:01:09 +0300
Subject: [PATCH] Handle room avatars in top bar without an icon

---
 include/TopRoomBar.h |  1 +
 src/ChatPage.cc      |  2 ++
 src/TopRoomBar.cc    | 10 ++++++++++
 3 files changed, 13 insertions(+)

diff --git a/include/TopRoomBar.h b/include/TopRoomBar.h
index bfc5a08f7..1544ad46b 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 e6b05c1db..a5e86f1f3 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 3c05a953d..adff71b09 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("");
-- 
GitLab