summaryrefslogtreecommitdiff
path: root/components/channels.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-07-26 00:56:14 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-07-26 00:56:14 -0400
commitdf243a40b5febcf7b9834e66f0ade770c3b483a0 (patch)
tree02000fb2c040c6e8af652b36954e6c87c0fd2bff /components/channels.cpp
parent30391836d0bf25732ca5b1bbd46f6e2c84608b5e (diff)
downloadabaddon-portaudio-df243a40b5febcf7b9834e66f0ade770c3b483a0.tar.gz
abaddon-portaudio-df243a40b5febcf7b9834e66f0ade770c3b483a0.zip
let channel list manage itself instead of window
Diffstat (limited to 'components/channels.cpp')
-rw-r--r--components/channels.cpp16
1 files changed, 10 insertions, 6 deletions
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;