update channel list selection when channel mention is clicked
This commit is contained in:
@@ -63,7 +63,7 @@ int Abaddon::StartGTK() {
|
|||||||
m_main_window->signal_action_reload_css().connect(sigc::mem_fun(*this, &Abaddon::ActionReloadCSS));
|
m_main_window->signal_action_reload_css().connect(sigc::mem_fun(*this, &Abaddon::ActionReloadCSS));
|
||||||
m_main_window->signal_action_join_guild().connect(sigc::mem_fun(*this, &Abaddon::ActionJoinGuildDialog));
|
m_main_window->signal_action_join_guild().connect(sigc::mem_fun(*this, &Abaddon::ActionJoinGuildDialog));
|
||||||
|
|
||||||
m_main_window->GetChannelList()->signal_action_channel_item_select().connect(sigc::mem_fun(*this, &Abaddon::ActionListChannelItemClick));
|
m_main_window->GetChannelList()->signal_action_channel_item_select().connect(sigc::mem_fun(*this, &Abaddon::ActionChannelOpened));
|
||||||
m_main_window->GetChannelList()->signal_action_guild_move_up().connect(sigc::mem_fun(*this, &Abaddon::ActionMoveGuildUp));
|
m_main_window->GetChannelList()->signal_action_guild_move_up().connect(sigc::mem_fun(*this, &Abaddon::ActionMoveGuildUp));
|
||||||
m_main_window->GetChannelList()->signal_action_guild_move_down().connect(sigc::mem_fun(*this, &Abaddon::ActionMoveGuildDown));
|
m_main_window->GetChannelList()->signal_action_guild_move_down().connect(sigc::mem_fun(*this, &Abaddon::ActionMoveGuildDown));
|
||||||
m_main_window->GetChannelList()->signal_action_guild_leave().connect(sigc::mem_fun(*this, &Abaddon::ActionLeaveGuild));
|
m_main_window->GetChannelList()->signal_action_guild_leave().connect(sigc::mem_fun(*this, &Abaddon::ActionLeaveGuild));
|
||||||
@@ -72,7 +72,7 @@ int Abaddon::StartGTK() {
|
|||||||
m_main_window->GetChatWindow()->signal_action_message_edit().connect(sigc::mem_fun(*this, &Abaddon::ActionChatEditMessage));
|
m_main_window->GetChatWindow()->signal_action_message_edit().connect(sigc::mem_fun(*this, &Abaddon::ActionChatEditMessage));
|
||||||
m_main_window->GetChatWindow()->signal_action_chat_submit().connect(sigc::mem_fun(*this, &Abaddon::ActionChatInputSubmit));
|
m_main_window->GetChatWindow()->signal_action_chat_submit().connect(sigc::mem_fun(*this, &Abaddon::ActionChatInputSubmit));
|
||||||
m_main_window->GetChatWindow()->signal_action_chat_load_history().connect(sigc::mem_fun(*this, &Abaddon::ActionChatLoadHistory));
|
m_main_window->GetChatWindow()->signal_action_chat_load_history().connect(sigc::mem_fun(*this, &Abaddon::ActionChatLoadHistory));
|
||||||
m_main_window->GetChatWindow()->signal_action_channel_click().connect(sigc::mem_fun(*this, &Abaddon::ActionListChannelItemClick)); // rename me
|
m_main_window->GetChatWindow()->signal_action_channel_click().connect(sigc::mem_fun(*this, &Abaddon::ActionChannelOpened));
|
||||||
m_main_window->GetChatWindow()->signal_action_insert_mention().connect(sigc::mem_fun(*this, &Abaddon::ActionInsertMention));
|
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_insert_mention().connect(sigc::mem_fun(*this, &Abaddon::ActionInsertMention));
|
||||||
@@ -255,7 +255,7 @@ void Abaddon::ActionMoveGuildDown(Snowflake id) {
|
|||||||
m_discord.UpdateSettingsGuildPositions(order);
|
m_discord.UpdateSettingsGuildPositions(order);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Abaddon::ActionListChannelItemClick(Snowflake id) {
|
void Abaddon::ActionChannelOpened(Snowflake id) {
|
||||||
if (id == m_main_window->GetChatActiveChannel()) return;
|
if (id == m_main_window->GetChatActiveChannel()) return;
|
||||||
|
|
||||||
auto *channel = m_discord.GetChannel(id);
|
auto *channel = m_discord.GetChannel(id);
|
||||||
|
@@ -35,7 +35,7 @@ public:
|
|||||||
void ActionJoinGuildDialog();
|
void ActionJoinGuildDialog();
|
||||||
void ActionMoveGuildUp(Snowflake id);
|
void ActionMoveGuildUp(Snowflake id);
|
||||||
void ActionMoveGuildDown(Snowflake id);
|
void ActionMoveGuildDown(Snowflake id);
|
||||||
void ActionListChannelItemClick(Snowflake id);
|
void ActionChannelOpened(Snowflake id);
|
||||||
void ActionChatInputSubmit(std::string msg, Snowflake channel);
|
void ActionChatInputSubmit(std::string msg, Snowflake channel);
|
||||||
void ActionChatLoadHistory(Snowflake id);
|
void ActionChatLoadHistory(Snowflake id);
|
||||||
void ActionChatDeleteMessage(Snowflake channel_id, Snowflake id);
|
void ActionChatDeleteMessage(Snowflake channel_id, Snowflake id);
|
||||||
|
@@ -414,6 +414,12 @@ void ChannelList::Clear() {
|
|||||||
m_update_dispatcher.emit();
|
m_update_dispatcher.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ChannelList::SetActiveChannel(Snowflake id) {
|
||||||
|
auto it = m_id_to_row.find(id);
|
||||||
|
if (it == m_id_to_row.end()) return;
|
||||||
|
m_list->select_row(*it->second);
|
||||||
|
}
|
||||||
|
|
||||||
void ChannelList::CollapseRow(ChannelListRow *row) {
|
void ChannelList::CollapseRow(ChannelListRow *row) {
|
||||||
row->Collapse();
|
row->Collapse();
|
||||||
for (auto child : row->Children) {
|
for (auto child : row->Children) {
|
||||||
|
@@ -94,6 +94,8 @@ public:
|
|||||||
void UpdateGuild(Snowflake id);
|
void UpdateGuild(Snowflake id);
|
||||||
void Clear();
|
void Clear();
|
||||||
|
|
||||||
|
void SetActiveChannel(Snowflake id);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
Gtk::ListBox *m_list;
|
Gtk::ListBox *m_list;
|
||||||
Gtk::ScrolledWindow *m_main;
|
Gtk::ScrolledWindow *m_main;
|
||||||
|
@@ -160,6 +160,7 @@ void MainWindow::UpdateChatActiveChannel(Snowflake id) {
|
|||||||
auto &discord = Abaddon::Get().GetDiscordClient();
|
auto &discord = Abaddon::Get().GetDiscordClient();
|
||||||
m_chat.SetActiveChannel(id);
|
m_chat.SetActiveChannel(id);
|
||||||
m_members.SetActiveChannel(id);
|
m_members.SetActiveChannel(id);
|
||||||
|
m_channel_list.SetActiveChannel(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
Snowflake MainWindow::GetChatActiveChannel() const {
|
Snowflake MainWindow::GetChatActiveChannel() const {
|
||||||
|
Reference in New Issue
Block a user