summaryrefslogtreecommitdiff
path: root/windows/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'windows/mainwindow.cpp')
-rw-r--r--windows/mainwindow.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/windows/mainwindow.cpp b/windows/mainwindow.cpp
index 8750afd..77a936f 100644
--- a/windows/mainwindow.cpp
+++ b/windows/mainwindow.cpp
@@ -41,8 +41,10 @@ MainWindow::MainWindow()
m_menu_view.set_submenu(m_menu_view_sub);
m_menu_view_friends.set_label("Friends");
m_menu_view_pins.set_label("Pins");
+ m_menu_view_threads.set_label("Threads");
m_menu_view_sub.append(m_menu_view_friends);
m_menu_view_sub.append(m_menu_view_pins);
+ m_menu_view_sub.append(m_menu_view_threads);
m_menu_view_sub.signal_popped_up().connect(sigc::mem_fun(*this, &MainWindow::OnViewSubmenuPopup));
m_menu_bar.append(m_menu_file);
@@ -92,6 +94,10 @@ MainWindow::MainWindow()
m_signal_action_view_pins.emit(GetChatActiveChannel());
});
+ m_menu_view_threads.signal_activate().connect([this] {
+ m_signal_action_view_threads.emit(GetChatActiveChannel());
+ });
+
m_content_box.set_hexpand(true);
m_content_box.set_vexpand(true);
m_content_box.show();
@@ -243,8 +249,11 @@ void MainWindow::OnViewSubmenuPopup(const Gdk::Rectangle *flipped_rect, const Gd
auto channel_id = GetChatActiveChannel();
auto channel = Abaddon::Get().GetDiscordClient().GetChannel(channel_id);
m_menu_view_pins.set_sensitive(false);
- if (channel.has_value())
- m_menu_view_pins.set_sensitive(channel->Type == ChannelType::GUILD_TEXT || channel->Type == ChannelType::DM || channel->Type == ChannelType::GROUP_DM);
+ m_menu_view_threads.set_sensitive(false);
+ if (channel.has_value()) {
+ m_menu_view_threads.set_sensitive(channel->Type == ChannelType::GUILD_TEXT || channel->IsThread());
+ m_menu_view_pins.set_sensitive(channel->Type == ChannelType::GUILD_TEXT || channel->Type == ChannelType::DM || channel->Type == ChannelType::GROUP_DM || channel->IsThread());
+ }
}
ChannelList *MainWindow::GetChannelList() {
@@ -290,3 +299,7 @@ MainWindow::type_signal_action_add_recipient MainWindow::signal_action_add_recip
MainWindow::type_signal_action_view_pins MainWindow::signal_action_view_pins() {
return m_signal_action_view_pins;
}
+
+MainWindow::type_signal_action_view_threads MainWindow::signal_action_view_threads() {
+ return m_signal_action_view_threads;
+}