summaryrefslogtreecommitdiff
path: root/components
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2021-06-23 02:24:24 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2021-06-23 02:24:24 -0400
commit6e75c4a95dcf0e601aba324ab5ae5f34ebd1a00d (patch)
tree680c741a0664361beca4b7e3578d695b4e79e17b /components
parent41d60e5e907aa0d6f625796e15c6317074e2af7d (diff)
downloadabaddon-portaudio-6e75c4a95dcf0e601aba324ab5ae5f34ebd1a00d.tar.gz
abaddon-portaudio-6e75c4a95dcf0e601aba324ab5ae5f34ebd1a00d.zip
add pin menu item to messages
Diffstat (limited to 'components')
-rw-r--r--components/chatlist.cpp15
-rw-r--r--components/chatlist.hpp1
2 files changed, 13 insertions, 3 deletions
diff --git a/components/chatlist.cpp b/components/chatlist.cpp
index 8fd28a5..86460b9 100644
--- a/components/chatlist.cpp
+++ b/components/chatlist.cpp
@@ -73,6 +73,12 @@ ChatList::ChatList() {
});
m_menu.append(*m_menu_unpin);
+ m_menu_pin = Gtk::manage(new Gtk::MenuItem("Pin"));
+ m_menu_pin->signal_activate().connect([this] {
+ Abaddon::Get().GetDiscordClient().Pin(m_active_channel, m_menu_selected_message, [](...) {});
+ });
+ m_menu.append(*m_menu_pin);
+
m_menu.show();
}
@@ -159,12 +165,15 @@ void ChatList::ProcessNewMessage(const Message &data, bool prepend) {
if (ev->type == GDK_BUTTON_PRESS && ev->button == GDK_BUTTON_SECONDARY) {
m_menu_selected_message = id;
+ const auto &client = Abaddon::Get().GetDiscordClient();
+ const auto data = client.GetMessage(id);
+ if (!data.has_value()) return false;
+
m_menu_edit_message->set_visible(!m_use_pinned_menu);
m_menu_reply_to->set_visible(!m_use_pinned_menu);
- m_menu_unpin->set_visible(m_use_pinned_menu);
+ m_menu_unpin->set_visible(data->IsPinned);
+ m_menu_pin->set_visible(!data->IsPinned);
- const auto &client = Abaddon::Get().GetDiscordClient();
- const auto data = client.GetMessage(id);
if (data->IsDeleted()) {
m_menu_delete_message->set_sensitive(false);
m_menu_edit_message->set_sensitive(false);
diff --git a/components/chatlist.hpp b/components/chatlist.hpp
index 7f9dab7..2122e49 100644
--- a/components/chatlist.hpp
+++ b/components/chatlist.hpp
@@ -38,6 +38,7 @@ private:
Gtk::MenuItem *m_menu_edit_message;
Gtk::MenuItem *m_menu_reply_to;
Gtk::MenuItem *m_menu_unpin;
+ Gtk::MenuItem *m_menu_pin;
Snowflake m_menu_selected_message;
Snowflake m_active_channel;