hide guild info panes if you dont have perms for it

add note to bans panel since you can sorta see bans without perms
This commit is contained in:
ouwou
2021-02-12 00:34:30 -05:00
parent 921a3c25f8
commit 8e972e1334
3 changed files with 23 additions and 5 deletions

View File

@@ -5,7 +5,8 @@
// dont care to figure out why this happens cuz it doesnt seem to break anything
GuildSettingsBansPane::GuildSettingsBansPane(Snowflake id)
: GuildID(id)
: Gtk::Box(Gtk::ORIENTATION_VERTICAL)
, GuildID(id)
, m_menu_unban("Unban")
, m_menu_copy_id("Copy ID")
, m_model(Gtk::ListStore::create(m_columns)) {
@@ -26,6 +27,12 @@ GuildSettingsBansPane::GuildSettingsBansPane(Snowflake id)
} else {
for (const auto &ban : discord.GetBansInGuild(id))
OnGuildBanFetch(ban);
m_no_perms_note = Gtk::manage(new Gtk::Label("You do not have permission to see bans. However, bans made while you are connected will appear here"));
m_no_perms_note->set_single_line_mode(true);
m_no_perms_note->set_ellipsize(Pango::ELLIPSIZE_END);
m_no_perms_note->set_halign(Gtk::ALIGN_START);
add(*m_no_perms_note);
}
m_menu_unban.signal_activate().connect(sigc::mem_fun(*this, &GuildSettingsBansPane::OnMenuUnban));
@@ -37,7 +44,11 @@ GuildSettingsBansPane::GuildSettingsBansPane(Snowflake id)
m_view.signal_button_press_event().connect(sigc::mem_fun(*this, &GuildSettingsBansPane::OnTreeButtonPress), false);
m_view.show();
add(m_view);
m_scroll.set_propagate_natural_height(true);
m_scroll.add(m_view);
add(m_scroll);
show_all_children();
m_view.set_model(m_model);
m_view.append_column("User", m_columns.m_col_user);

View File

@@ -3,7 +3,7 @@
#include "../../discord/snowflake.hpp"
#include "../../discord/ban.hpp"
class GuildSettingsBansPane : public Gtk::ScrolledWindow {
class GuildSettingsBansPane : public Gtk::Box {
public:
GuildSettingsBansPane(Snowflake id);
@@ -16,6 +16,9 @@ private:
void OnBanRemove(Snowflake guild_id, Snowflake user_id);
void OnBanAdd(Snowflake guild_id, Snowflake user_id);
Gtk::Label *m_no_perms_note = nullptr;
Gtk::ScrolledWindow m_scroll;
Gtk::TreeView m_view;
Snowflake GuildID;

View File

@@ -50,10 +50,14 @@ GuildSettingsWindow::GuildSettingsWindow(Snowflake id)
m_stack.set_margin_left(10);
m_stack.set_margin_right(10);
const auto self_id = discord.GetUserData().ID;
m_stack.add(m_pane_info, "info", "Info");
m_stack.add(m_pane_bans, "bans", "Bans");
m_stack.add(m_pane_invites, "invites", "Invites");
m_stack.add(m_pane_audit_log, "audit-log", "Audit Log");
if (discord.HasGuildPermission(self_id, GuildID, Permission::MANAGE_GUILD))
m_stack.add(m_pane_invites, "invites", "Invites");
if (discord.HasGuildPermission(self_id, GuildID, Permission::VIEW_AUDIT_LOG))
m_stack.add(m_pane_audit_log, "audit-log", "Audit Log");
m_stack.show();
m_main.add(m_switcher);