summaryrefslogtreecommitdiff
path: root/windows/guildsettings/banspane.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-03-17 02:19:15 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-03-17 02:19:15 -0400
commit65943b4bd74ae52e6f6ffbff0e9ba619053172d6 (patch)
tree2dccda0581fab9379bde1586aa1c63079f555099 /windows/guildsettings/banspane.cpp
parent72d771d88b625cf29913ab02497aa8f331c247e5 (diff)
downloadabaddon-portaudio-65943b4bd74ae52e6f6ffbff0e9ba619053172d6.tar.gz
abaddon-portaudio-65943b4bd74ae52e6f6ffbff0e9ba619053172d6.zip
reduce concurrent requests in guild settings + profile
disable gtk's treeview search in bans+invites
Diffstat (limited to 'windows/guildsettings/banspane.cpp')
-rw-r--r--windows/guildsettings/banspane.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/windows/guildsettings/banspane.cpp b/windows/guildsettings/banspane.cpp
index 517ae09..3ea71bb 100644
--- a/windows/guildsettings/banspane.cpp
+++ b/windows/guildsettings/banspane.cpp
@@ -22,9 +22,7 @@ GuildSettingsBansPane::GuildSettingsBansPane(Snowflake id)
const auto self_id = discord.GetUserData().ID;
const auto can_ban = discord.HasGuildPermission(self_id, GuildID, Permission::BAN_MEMBERS);
- if (can_ban) {
- discord.FetchGuildBans(id, sigc::mem_fun(*this, &GuildSettingsBansPane::OnGuildBansFetch));
- } else {
+ if (!can_ban) {
for (const auto &ban : discord.GetBansInGuild(id))
OnGuildBanFetch(ban);
@@ -50,11 +48,25 @@ GuildSettingsBansPane::GuildSettingsBansPane(Snowflake id)
add(m_scroll);
show_all_children();
+ m_view.set_enable_search(false);
m_view.set_model(m_model);
m_view.append_column("User", m_columns.m_col_user);
m_view.append_column("Reason", m_columns.m_col_reason);
}
+void GuildSettingsBansPane::on_switched_to() {
+ if (m_requested) return;
+ m_requested = true;
+
+ auto &discord = Abaddon::Get().GetDiscordClient();
+
+ const auto self_id = discord.GetUserData().ID;
+ const auto can_ban = discord.HasGuildPermission(self_id, GuildID, Permission::BAN_MEMBERS);
+
+ if (can_ban)
+ discord.FetchGuildBans(GuildID, sigc::mem_fun(*this, &GuildSettingsBansPane::OnGuildBansFetch));
+}
+
void GuildSettingsBansPane::OnGuildBanFetch(const BanData &ban) {
const auto user = Abaddon::Get().GetDiscordClient().GetUser(ban.User.ID);
auto &row = *m_model->append();