mirror of
https://github.com/celisej567/abaddon.git
synced 2026-09-06 20:15:19 +03:00
basic THREAD_MEMBERS_UPDATE handling for updating channel list
This commit is contained in:
@@ -142,7 +142,8 @@ ChannelList::ChannelList()
|
||||
discord.signal_channel_update().connect(sigc::mem_fun(*this, &ChannelList::UpdateChannel));
|
||||
discord.signal_channel_create().connect(sigc::mem_fun(*this, &ChannelList::UpdateCreateChannel));
|
||||
discord.signal_thread_create().connect(sigc::mem_fun(*this, &ChannelList::UpdateCreateThread));
|
||||
discord.signal_thread_delete().connect(sigc::mem_fun(*this, &ChannelList::UpdateDeleteThread));
|
||||
discord.signal_thread_delete().connect(sigc::mem_fun(*this, &ChannelList::OnThreadDelete));
|
||||
discord.signal_thread_members_update().connect(sigc::mem_fun(*this, &ChannelList::OnThreadMembersUpdate));
|
||||
discord.signal_guild_update().connect(sigc::mem_fun(*this, &ChannelList::UpdateGuild));
|
||||
}
|
||||
|
||||
@@ -279,14 +280,25 @@ void ChannelList::UpdateGuild(Snowflake id) {
|
||||
}
|
||||
}
|
||||
|
||||
void ChannelList::OnThreadDelete(const ThreadDeleteData &data) {
|
||||
UpdateDeleteThread(data.ID);
|
||||
}
|
||||
|
||||
void ChannelList::OnThreadMembersUpdate(const ThreadMembersUpdateData &data) {
|
||||
auto &r = data.RemovedMemberIDs;
|
||||
if (r.has_value() && std::find(r->begin(), r->end(), Abaddon::Get().GetDiscordClient().GetUserData().ID) != r->end()) {
|
||||
UpdateDeleteThread(data.ID);
|
||||
}
|
||||
}
|
||||
|
||||
void ChannelList::UpdateCreateThread(const ChannelData &channel) {
|
||||
auto parent_row = GetIteratorForChannelFromID(*channel.ParentID);
|
||||
if (parent_row)
|
||||
CreateThreadRow(parent_row->children(), channel);
|
||||
}
|
||||
|
||||
void ChannelList::UpdateDeleteThread(const ThreadDeleteData &data) {
|
||||
auto iter = GetIteratorForChannelFromID(data.ID);
|
||||
void ChannelList::UpdateDeleteThread(Snowflake id) {
|
||||
auto iter = GetIteratorForChannelFromID(id);
|
||||
if (iter)
|
||||
m_model->erase(iter);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user