summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorKonstantinos Sideris <sideris.konstantin@gmail.com>2018-04-24 14:50:47 +0300
committerKonstantinos Sideris <sideris.konstantin@gmail.com>2018-04-24 14:50:47 +0300
commit649d73a7bddfabfe969019609a62c90475c8fe7f (patch)
treebf396a2afa247f592a5461cbf8c649a9e0327800 /src
parentRemove map from room_id to QPixmap from ChatPage (diff)
downloadnheko-649d73a7bddfabfe969019609a62c90475c8fe7f.tar.xz
Clear typing notifications when the user list is empty
fixes #304
Diffstat (limited to 'src')
-rw-r--r--src/ChatPage.cc28
1 files changed, 14 insertions, 14 deletions
diff --git a/src/ChatPage.cc b/src/ChatPage.cc

index 59fcdc13..f2efb684 100644 --- a/src/ChatPage.cc +++ b/src/ChatPage.cc
@@ -754,32 +754,32 @@ ChatPage::updateTypingUsers(const QString &roomid, const std::vector<std::string if (!userSettings_->isTypingNotificationsEnabled()) return; - if (user_ids.empty()) { - typingUsers_[roomid] = {}; - return; - } + typingUsers_[roomid] = generateTypingUsers(roomid, user_ids); + + if (current_room_ == roomid) + typingDisplay_->setUsers(typingUsers_[roomid]); +} +QStringList +ChatPage::generateTypingUsers(const QString &room_id, const std::vector<std::string> &typing_users) +{ QStringList users; QSettings settings; - QString user_id = settings.value("auth/user_id").toString(); + QString local_user = settings.value("auth/user_id").toString(); - for (const auto &uid : user_ids) { - auto user = QString::fromStdString(uid); + for (const auto &uid : typing_users) { + const auto remote_user = QString::fromStdString(uid); - if (user == user_id) + if (remote_user == local_user) continue; - users.append(Cache::displayName(roomid, user)); + users.append(Cache::displayName(room_id, remote_user)); } users.sort(); - if (current_room_ == roomid) { - typingDisplay_->setUsers(users); - } - - typingUsers_.emplace(roomid, users); + return users; } void