summaryrefslogtreecommitdiff
path: root/components/channels.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-01-15 06:37:35 +0000
committerGitHub <noreply@github.com>2021-01-15 06:37:35 +0000
commit462f801af20562f151cd7ad7fa70aa65695b3e22 (patch)
treeec5ab7509bc9478ac82715fe9e74381bbfc4a9df /components/channels.cpp
parentf51ab48009e7fcfafee1d09800764fcbd5d36bf5 (diff)
downloadabaddon-portaudio-462f801af20562f151cd7ad7fa70aa65695b3e22.tar.gz
abaddon-portaudio-462f801af20562f151cd7ad7fa70aa65695b3e22.zip
Guild settings 1 (#19)
* start guild settings window, tweak style
Diffstat (limited to 'components/channels.cpp')
-rw-r--r--components/channels.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/components/channels.cpp b/components/channels.cpp
index 64613a4..0819f8c 100644
--- a/components/channels.cpp
+++ b/components/channels.cpp
@@ -117,6 +117,12 @@ ChannelListRowGuild::ChannelListRowGuild(const GuildData *data) {
});
m_menu.append(*m_menu_leave);
+ m_menu_settings = Gtk::manage(new Gtk::MenuItem("Guild _Settings", true));
+ m_menu_settings->signal_activate().connect([this]() {
+ m_signal_settings.emit();
+ });
+ m_menu.append(*m_menu_settings);
+
m_menu.show_all();
const auto show_animations = Abaddon::Get().GetSettings().GetShowAnimations();
@@ -176,6 +182,10 @@ ChannelListRowGuild::type_signal_leave ChannelListRowGuild::signal_leave() {
return m_signal_leave;
}
+ChannelListRowGuild::type_signal_settings ChannelListRowGuild::signal_settings() {
+ return m_signal_settings;
+}
+
ChannelListRowCategory::ChannelListRowCategory(const ChannelData *data) {
ID = data->ID;
m_ev = Gtk::manage(new Gtk::EventBox);
@@ -519,6 +529,7 @@ void ChannelList::UpdateGuild(Snowflake id) {
m_guild_id_to_row[new_row->ID] = new_row;
new_row->signal_leave().connect(sigc::bind(sigc::mem_fun(*this, &ChannelList::OnGuildMenuLeave), new_row->ID));
new_row->signal_copy_id().connect(sigc::bind(sigc::mem_fun(*this, &ChannelList::OnMenuCopyID), new_row->ID));
+ new_row->signal_settings().connect(sigc::bind(sigc::mem_fun(*this, &ChannelList::OnGuildMenuSettings), new_row->ID));
new_row->Children = children;
for (auto child : children)
child->Parent = new_row;
@@ -615,6 +626,7 @@ void ChannelList::InsertGuildAt(Snowflake id, int pos) {
m_guild_id_to_row[guild_row->ID] = guild_row;
guild_row->signal_leave().connect(sigc::bind(sigc::mem_fun(*this, &ChannelList::OnGuildMenuLeave), guild_row->ID));
guild_row->signal_copy_id().connect(sigc::bind(sigc::mem_fun(*this, &ChannelList::OnMenuCopyID), guild_row->ID));
+ guild_row->signal_settings().connect(sigc::bind(sigc::mem_fun(*this, &ChannelList::OnGuildMenuSettings), guild_row->ID));
// add channels with no parent category
for (const auto &[pos, channel] : orphan_channels) {
@@ -726,6 +738,10 @@ void ChannelList::OnGuildMenuLeave(Snowflake id) {
m_signal_action_guild_leave.emit(id);
}
+void ChannelList::OnGuildMenuSettings(Snowflake id) {
+ m_signal_action_guild_settings.emit(id);
+}
+
void ChannelList::CheckBumpDM(Snowflake channel_id) {
auto it = m_dm_id_to_row.find(channel_id);
if (it == m_dm_id_to_row.end()) return;
@@ -756,3 +772,7 @@ ChannelList::type_signal_action_channel_item_select ChannelList::signal_action_c
ChannelList::type_signal_action_guild_leave ChannelList::signal_action_guild_leave() {
return m_signal_action_guild_leave;
}
+
+ChannelList::type_signal_action_guild_settings ChannelList::signal_action_guild_settings() {
+ return m_signal_action_guild_settings;
+}