add ability to edit messages

This commit is contained in:
ouwou
2020-08-30 22:55:36 -04:00
parent 44b7989f50
commit 9b1bc8f145
12 changed files with 120 additions and 1 deletions

View File

@@ -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);
}