summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-07-26 00:56:14 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-07-26 00:56:14 -0400
commitdf243a40b5febcf7b9834e66f0ade770c3b483a0 (patch)
tree02000fb2c040c6e8af652b36954e6c87c0fd2bff
parent30391836d0bf25732ca5b1bbd46f6e2c84608b5e (diff)
downloadabaddon-portaudio-df243a40b5febcf7b9834e66f0ade770c3b483a0.tar.gz
abaddon-portaudio-df243a40b5febcf7b9834e66f0ade770c3b483a0.zip
let channel list manage itself instead of window
-rw-r--r--abaddon.cpp30
-rw-r--r--abaddon.hpp6
-rw-r--r--components/channels.cpp16
-rw-r--r--components/channels.hpp9
-rw-r--r--windows/mainwindow.cpp24
-rw-r--r--windows/mainwindow.hpp6
6 files changed, 15 insertions, 76 deletions
diff --git a/abaddon.cpp b/abaddon.cpp
index 99a2520..047ca09 100644
--- a/abaddon.cpp
+++ b/abaddon.cpp
@@ -35,12 +35,6 @@ Abaddon::Abaddon()
m_discord.signal_message_delete().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnMessageDelete));
m_discord.signal_message_update().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnMessageUpdate));
m_discord.signal_guild_member_list_update().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnGuildMemberListUpdate));
- m_discord.signal_guild_create().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnGuildCreate));
- m_discord.signal_guild_delete().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnGuildDelete));
- m_discord.signal_channel_delete().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnChannelDelete));
- m_discord.signal_channel_update().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnChannelUpdate));
- m_discord.signal_channel_create().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnChannelCreate));
- m_discord.signal_guild_update().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnGuildUpdate));
m_discord.signal_reaction_add().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnReactionAdd));
m_discord.signal_reaction_remove().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnReactionRemove));
m_discord.signal_guild_join_request_create().connect(sigc::mem_fun(*this, &Abaddon::DiscordOnGuildJoinRequestCreate));
@@ -196,30 +190,6 @@ void Abaddon::DiscordOnGuildMemberListUpdate(Snowflake guild_id) {
m_main_window->UpdateMembers();
}
-void Abaddon::DiscordOnGuildCreate(const GuildData &guild) {
- m_main_window->UpdateChannelsNewGuild(guild.ID);
-}
-
-void Abaddon::DiscordOnGuildDelete(Snowflake guild_id) {
- m_main_window->UpdateChannelsRemoveGuild(guild_id);
-}
-
-void Abaddon::DiscordOnChannelDelete(Snowflake channel_id) {
- m_main_window->UpdateChannelsRemoveChannel(channel_id);
-}
-
-void Abaddon::DiscordOnChannelUpdate(Snowflake channel_id) {
- m_main_window->UpdateChannelsUpdateChannel(channel_id);
-}
-
-void Abaddon::DiscordOnChannelCreate(Snowflake channel_id) {
- m_main_window->UpdateChannelsCreateChannel(channel_id);
-}
-
-void Abaddon::DiscordOnGuildUpdate(Snowflake guild_id) {
- m_main_window->UpdateChannelsUpdateGuild(guild_id);
-}
-
void Abaddon::DiscordOnReactionAdd(Snowflake message_id, const Glib::ustring &param) {
m_main_window->UpdateChatReactionAdd(message_id, param);
}
diff --git a/abaddon.hpp b/abaddon.hpp
index aebb9e1..721329d 100644
--- a/abaddon.hpp
+++ b/abaddon.hpp
@@ -65,12 +65,6 @@ public:
void DiscordOnMessageDelete(Snowflake id, Snowflake channel_id);
void DiscordOnMessageUpdate(Snowflake id, Snowflake channel_id);
void DiscordOnGuildMemberListUpdate(Snowflake guild_id);
- void DiscordOnGuildCreate(const GuildData &guild);
- void DiscordOnGuildDelete(Snowflake guild_id);
- void DiscordOnChannelDelete(Snowflake channel_id);
- void DiscordOnChannelUpdate(Snowflake channel_id);
- void DiscordOnChannelCreate(Snowflake channel_id);
- void DiscordOnGuildUpdate(Snowflake guild_id);
void DiscordOnReactionAdd(Snowflake message_id, const Glib::ustring &param);
void DiscordOnReactionRemove(Snowflake message_id, const Glib::ustring &param);
void DiscordOnGuildJoinRequestCreate(const GuildJoinRequestCreateData &data);
diff --git a/components/channels.cpp b/components/channels.cpp
index c59418a..3e7862b 100644
--- a/components/channels.cpp
+++ b/components/channels.cpp
@@ -116,7 +116,14 @@ ChannelList::ChannelList()
m_menu_dm.append(m_menu_dm_close);
m_menu_dm.show_all();
- Abaddon::Get().GetDiscordClient().signal_message_create().connect(sigc::mem_fun(*this, &ChannelList::OnMessageCreate));
+ auto &discord = Abaddon::Get().GetDiscordClient();
+ discord.signal_message_create().connect(sigc::mem_fun(*this, &ChannelList::OnMessageCreate));
+ discord.signal_guild_create().connect(sigc::mem_fun(*this, &ChannelList::UpdateNewGuild));
+ discord.signal_guild_delete().connect(sigc::mem_fun(*this, &ChannelList::UpdateRemoveGuild));
+ discord.signal_channel_delete().connect(sigc::mem_fun(*this, &ChannelList::UpdateRemoveChannel));
+ discord.signal_channel_update().connect(sigc::mem_fun(*this, &ChannelList::UpdateChannel));
+ discord.signal_channel_create().connect(sigc::mem_fun(*this, &ChannelList::UpdateCreateChannel));
+ discord.signal_guild_update().connect(sigc::mem_fun(*this, &ChannelList::UpdateGuild));
}
void ChannelList::UpdateListing() {
@@ -142,13 +149,10 @@ void ChannelList::UpdateListing() {
AddPrivateChannels();
}
-void ChannelList::UpdateNewGuild(Snowflake id) {
- const auto guild = Abaddon::Get().GetDiscordClient().GetGuild(id);
+void ChannelList::UpdateNewGuild(const GuildData &guild) {
auto &img = Abaddon::Get().GetImageManager();
- if (!guild.has_value()) return;
-
- auto iter = AddGuild(*guild);
+ auto iter = AddGuild(guild);
// update sort order
int sortnum = 0;
diff --git a/components/channels.hpp b/components/channels.hpp
index 3e9d9e0..69f1f77 100644
--- a/components/channels.hpp
+++ b/components/channels.hpp
@@ -118,17 +118,18 @@ private:
class ChannelList : public Gtk::ScrolledWindow {
public:
ChannelList();
+
void UpdateListing();
- void UpdateNewGuild(Snowflake id);
+ void SetActiveChannel(Snowflake id);
+
+protected:
+ void UpdateNewGuild(const GuildData &guild);
void UpdateRemoveGuild(Snowflake id);
void UpdateRemoveChannel(Snowflake id);
void UpdateChannel(Snowflake id);
void UpdateCreateChannel(Snowflake id);
void UpdateGuild(Snowflake id);
- void SetActiveChannel(Snowflake id);
-
-protected:
Gtk::TreeView m_view;
class ModelColumns : public Gtk::TreeModel::ColumnRecord {
diff --git a/windows/mainwindow.cpp b/windows/mainwindow.cpp
index dc9c51d..0d77e96 100644
--- a/windows/mainwindow.cpp
+++ b/windows/mainwindow.cpp
@@ -165,30 +165,6 @@ void MainWindow::UpdateChannelListing() {
m_channel_list.UpdateListing();
}
-void MainWindow::UpdateChannelsNewGuild(Snowflake id) {
- m_channel_list.UpdateNewGuild(id);
-}
-
-void MainWindow::UpdateChannelsRemoveGuild(Snowflake id) {
- m_channel_list.UpdateRemoveGuild(id);
-}
-
-void MainWindow::UpdateChannelsRemoveChannel(Snowflake id) {
- m_channel_list.UpdateRemoveChannel(id);
-}
-
-void MainWindow::UpdateChannelsUpdateChannel(Snowflake id) {
- m_channel_list.UpdateChannel(id);
-}
-
-void MainWindow::UpdateChannelsCreateChannel(Snowflake id) {
- m_channel_list.UpdateCreateChannel(id);
-}
-
-void MainWindow::UpdateChannelsUpdateGuild(Snowflake id) {
- m_channel_list.UpdateGuild(id);
-}
-
void MainWindow::UpdateChatWindowContents() {
auto &discord = Abaddon::Get().GetDiscordClient();
auto msgs = discord.GetMessagesForChannel(m_chat.GetActiveChannel(), 50);
diff --git a/windows/mainwindow.hpp b/windows/mainwindow.hpp
index fa3d331..d037796 100644
--- a/windows/mainwindow.hpp
+++ b/windows/mainwindow.hpp
@@ -12,12 +12,6 @@ public:
void UpdateComponents();
void UpdateMembers();
void UpdateChannelListing();
- void UpdateChannelsNewGuild(Snowflake id);
- void UpdateChannelsRemoveGuild(Snowflake id);
- void UpdateChannelsRemoveChannel(Snowflake id);
- void UpdateChannelsUpdateChannel(Snowflake id);
- void UpdateChannelsCreateChannel(Snowflake id);
- void UpdateChannelsUpdateGuild(Snowflake id);
void UpdateChatWindowContents();
void UpdateChatActiveChannel(Snowflake id);
Snowflake GetChatActiveChannel() const;