From d88dee3185c8f2c1f32859e1ae7df832b6f10c98 Mon Sep 17 00:00:00 2001
From: Konstantinos Sideris <sideris.konstantin@gmail.com>
Date: Fri, 18 May 2018 21:37:08 +0300
Subject: [PATCH] Refresh the room info on the top bar after sync

---
 include/ChatPage.h |  1 +
 src/ChatPage.cc    | 12 +++++++++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/include/ChatPage.h b/include/ChatPage.h
index 799f7a2ed..b6c431e40 100644
--- a/include/ChatPage.h
+++ b/include/ChatPage.h
@@ -88,6 +88,7 @@ signals:
         void syncUI(const mtx::responses::Rooms &rooms);
         void continueSync(const QString &next_batch);
         void syncRoomlist(const std::map<QString, RoomInfo> &updates);
+        void syncTopBar(const std::map<QString, RoomInfo> &updates);
 
 private slots:
         void showUnreadMessageNotification(int count);
diff --git a/src/ChatPage.cc b/src/ChatPage.cc
index 6040dc66c..9ae860fb8 100644
--- a/src/ChatPage.cc
+++ b/src/ChatPage.cc
@@ -440,6 +440,11 @@ ChatPage::ChatPage(QSharedPointer<UserSettings> userSettings, QWidget *parent)
                         http::client()->getNotifications();
         });
         connect(this, &ChatPage::syncRoomlist, room_list_, &RoomList::sync);
+        connect(
+          this, &ChatPage::syncTopBar, this, [this](const std::map<QString, RoomInfo> &updates) {
+                  if (updates.find(currentRoom()) != updates.end())
+                          changeTopRoomInfo(currentRoom());
+          });
 
         instance_ = this;
 
@@ -532,7 +537,12 @@ ChatPage::syncCompleted(const mtx::responses::Sync &response)
                 try {
                         cache::client()->saveState(res);
                         emit syncUI(res.rooms);
-                        emit syncRoomlist(cache::client()->roomUpdates(res));
+
+                        auto updates = cache::client()->roomUpdates(res);
+
+                        emit syncTopBar(updates);
+                        emit syncRoomlist(updates);
+
                 } catch (const lmdb::error &e) {
                         std::cout << "save cache error:" << e.what() << '\n';
                         // TODO: retry sync.
-- 
GitLab