From df243a40b5febcf7b9834e66f0ade770c3b483a0 Mon Sep 17 00:00:00 2001 From: ouwou <26526779+ouwou@users.noreply.github.com> Date: Mon, 26 Jul 2021 00:56:14 -0400 Subject: let channel list manage itself instead of window --- components/channels.cpp | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'components/channels.cpp') diff --git a/components/channels.cpp b/components/channels.cpp index c59418a..3e7862b 100644 --- a/components/channels.cpp +++ b/components/channels.cpp @@ -116,7 +116,14 @@ ChannelList::ChannelList() m_menu_dm.append(m_menu_dm_close); m_menu_dm.show_all(); - Abaddon::Get().GetDiscordClient().signal_message_create().connect(sigc::mem_fun(*this, &ChannelList::OnMessageCreate)); + auto &discord = Abaddon::Get().GetDiscordClient(); + discord.signal_message_create().connect(sigc::mem_fun(*this, &ChannelList::OnMessageCreate)); + discord.signal_guild_create().connect(sigc::mem_fun(*this, &ChannelList::UpdateNewGuild)); + discord.signal_guild_delete().connect(sigc::mem_fun(*this, &ChannelList::UpdateRemoveGuild)); + discord.signal_channel_delete().connect(sigc::mem_fun(*this, &ChannelList::UpdateRemoveChannel)); + discord.signal_channel_update().connect(sigc::mem_fun(*this, &ChannelList::UpdateChannel)); + discord.signal_channel_create().connect(sigc::mem_fun(*this, &ChannelList::UpdateCreateChannel)); + discord.signal_guild_update().connect(sigc::mem_fun(*this, &ChannelList::UpdateGuild)); } void ChannelList::UpdateListing() { @@ -142,13 +149,10 @@ void ChannelList::UpdateListing() { AddPrivateChannels(); } -void ChannelList::UpdateNewGuild(Snowflake id) { - const auto guild = Abaddon::Get().GetDiscordClient().GetGuild(id); +void ChannelList::UpdateNewGuild(const GuildData &guild) { auto &img = Abaddon::Get().GetImageManager(); - if (!guild.has_value()) return; - - auto iter = AddGuild(*guild); + auto iter = AddGuild(guild); // update sort order int sortnum = 0; -- cgit v1.2.3