diff options
author | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-10-12 18:17:53 -0400 |
---|---|---|
committer | ouwou <26526779+ouwou@users.noreply.github.com> | 2020-10-12 18:17:53 -0400 |
commit | f5ae8c3d3fd4c6b928da6c7c3c785525fc60b7b4 (patch) | |
tree | ecc57ee465504d787fd368c634a31ba8fae7f928 /abaddon.cpp | |
parent | d48fe29da9d8a19cec982be5a8ea50589fb92c87 (diff) | |
download | abaddon-portaudio-f5ae8c3d3fd4c6b928da6c7c3c785525fc60b7b4.tar.gz abaddon-portaudio-f5ae8c3d3fd4c6b928da6c7c3c785525fc60b7b4.zip |
add kick/ban
Diffstat (limited to 'abaddon.cpp')
-rw-r--r-- | abaddon.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/abaddon.cpp b/abaddon.cpp index a2991c5..ca70814 100644 --- a/abaddon.cpp +++ b/abaddon.cpp @@ -71,6 +71,8 @@ int Abaddon::StartGTK() { m_main_window->GetChatWindow()->signal_action_insert_mention().connect(sigc::mem_fun(*this, &Abaddon::ActionInsertMention)); m_main_window->GetMemberList()->signal_action_insert_mention().connect(sigc::mem_fun(*this, &Abaddon::ActionInsertMention)); + m_main_window->GetMemberList()->signal_action_kick().connect(sigc::mem_fun(*this, &Abaddon::ActionKickMember)); + m_main_window->GetMemberList()->signal_action_ban().connect(sigc::mem_fun(*this, &Abaddon::ActionBanMember)); ActionReloadCSS(); @@ -316,11 +318,34 @@ void Abaddon::ActionInsertMention(Snowflake id) { void Abaddon::ActionLeaveGuild(Snowflake id) { ConfirmDialog dlg(*m_main_window); + const auto *guild = m_discord.GetGuild(id); + if (guild != nullptr) + dlg.SetConfirmText("Are you sure you want to leave " + guild->Name + "?"); auto response = dlg.run(); if (response == Gtk::RESPONSE_OK) m_discord.LeaveGuild(id); } +void Abaddon::ActionKickMember(Snowflake user_id, Snowflake guild_id) { + ConfirmDialog dlg(*m_main_window); + const auto *user = m_discord.GetUser(user_id); + if (user != nullptr) + dlg.SetConfirmText("Are you sure you want to kick " + user->Username + "#" + user->Discriminator + "?"); + auto response = dlg.run(); + if (response == Gtk::RESPONSE_OK) + m_discord.KickUser(user_id, guild_id); +} + +void Abaddon::ActionBanMember(Snowflake user_id, Snowflake guild_id) { + ConfirmDialog dlg(*m_main_window); + const auto *user = m_discord.GetUser(user_id); + if (user != nullptr) + dlg.SetConfirmText("Are you sure you want to ban " + user->Username + "#" + user->Discriminator + "?"); + auto response = dlg.run(); + if (response == Gtk::RESPONSE_OK) + m_discord.BanUser(user_id, guild_id); +} + void Abaddon::ActionReloadCSS() { try { Gtk::StyleContext::remove_provider_for_screen(Gdk::Screen::get_default(), m_css_provider); |