summaryrefslogtreecommitdiff
path: root/components/chatmessage.cpp
diff options
context:
space:
mode:
authorouwou <26526779+ouwou@users.noreply.github.com>2020-08-30 22:55:36 -0400
committerouwou <26526779+ouwou@users.noreply.github.com>2020-08-30 22:55:36 -0400
commit9b1bc8f14590db0cf460fd62a7eb856e02a531db (patch)
treeede45d77aa834d9c19f3db0b2af6e08e511b1a5d /components/chatmessage.cpp
parent44b7989f50d458a8d60024f29e225e40a106d927 (diff)
downloadabaddon-portaudio-9b1bc8f14590db0cf460fd62a7eb856e02a531db.tar.gz
abaddon-portaudio-9b1bc8f14590db0cf460fd62a7eb856e02a531db.zip
add ability to edit messages
Diffstat (limited to 'components/chatmessage.cpp')
-rw-r--r--components/chatmessage.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp
index c7cf21b..9074e91 100644
--- a/components/chatmessage.cpp
+++ b/components/chatmessage.cpp
@@ -62,6 +62,10 @@ ChatMessageItem::ChatMessageItem() {
m_menu_delete_message->signal_activate().connect(sigc::mem_fun(*this, &ChatMessageItem::on_menu_message_delete));
m_menu.append(*m_menu_delete_message);
+ m_menu_edit_message = Gtk::manage(new Gtk::MenuItem("_Edit Message", true));
+ m_menu_edit_message->signal_activate().connect(sigc::mem_fun(*this, &ChatMessageItem::on_menu_message_edit));
+ m_menu.append(*m_menu_edit_message);
+
m_menu.show_all();
}
@@ -73,6 +77,10 @@ void ChatMessageItem::on_menu_message_delete() {
m_abaddon->ActionChatDeleteMessage(ChannelID, ID);
}
+void ChatMessageItem::on_menu_message_edit() {
+ m_abaddon->ActionChatEditMessage(ChannelID, ID);
+}
+
void ChatMessageItem::on_menu_copy_id() {
Gtk::Clipboard::get()->set_text(std::to_string(ID));
}
@@ -94,7 +102,9 @@ void ChatMessageItem::AttachMenuHandler(Gtk::Widget *widget) {
void ChatMessageItem::ShowMenu(const GdkEvent *event) {
auto &client = m_abaddon->GetDiscordClient();
auto *data = client.GetMessage(ID);
- m_menu_delete_message->set_sensitive(client.GetUserData().ID == data->Author.ID);
+ bool can_manage = client.GetUserData().ID == data->Author.ID;
+ m_menu_delete_message->set_sensitive(can_manage);
+ m_menu_edit_message->set_sensitive(can_manage);
m_menu.popup_at_pointer(event);
}