clear messages on disconnect

This commit is contained in:
ouwou 2020-08-26 01:47:46 -04:00
parent c6e2f266a1
commit f3e8d1aff3
3 changed files with 11 additions and 6 deletions

View File

@ -116,6 +116,12 @@ void ChatWindow::AddNewMessage(Snowflake id) {
m_new_message_dispatch.emit();
}
void ChatWindow::ClearMessages() {
std::scoped_lock<std::mutex> guard(m_update_mutex);
m_message_set_queue.push(std::unordered_set<const MessageData *>());
m_message_set_dispatch.emit();
}
void ChatWindow::ScrollToBottom() {
auto x = m_scroll->get_vadjustment();
x->set_value(x->get_upper());

View File

@ -16,6 +16,7 @@ public:
Snowflake GetActiveChannel() const;
void SetMessages(std::unordered_set<const MessageData *> msgs);
void AddNewMessage(Snowflake id);
void ClearMessages();
protected:
void ScrollToBottom();

View File

@ -74,19 +74,17 @@ MainWindow::MainWindow()
void MainWindow::UpdateComponents() {
bool discord_active = m_abaddon->IsDiscordActive();
// menu
// Connect
std::string token = m_abaddon->GetDiscordToken();
m_menu_discord_connect.set_sensitive(token.size() > 0 && !discord_active);
// Disconnect
m_menu_discord_disconnect.set_sensitive(discord_active);
// channel listing
if (!discord_active)
if (!discord_active) {
m_channel_list.ClearListing();
else
m_chat.ClearMessages();
} else {
UpdateChannelListing();
}
}
void MainWindow::UpdateChannelListing() {