diff options
-rw-r--r-- | components/chatmessage.cpp | 10 | ||||
-rw-r--r-- | components/chatmessage.hpp | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/components/chatmessage.cpp b/components/chatmessage.cpp index 93355de..d15eef8 100644 --- a/components/chatmessage.cpp +++ b/components/chatmessage.cpp @@ -18,6 +18,10 @@ ChatMessageItemContainer::ChatMessageItemContainer() { m_menu_edit_message->signal_activate().connect(sigc::mem_fun(*this, &ChatMessageItemContainer::on_menu_edit_message)); m_menu.append(*m_menu_edit_message); + m_menu_copy_content = Gtk::manage(new Gtk::MenuItem("Copy Content")); + m_menu_copy_content->signal_activate().connect(sigc::mem_fun(*this, &ChatMessageItemContainer::on_menu_copy_content)); + m_menu.append(*m_menu_copy_content); + m_menu.show_all(); } @@ -568,6 +572,12 @@ void ChatMessageItemContainer::on_menu_edit_message() { m_signal_action_edit.emit(); } +void ChatMessageItemContainer::on_menu_copy_content() { + const auto *msg = Abaddon::Get().GetDiscordClient().GetMessage(ID); + if (msg != nullptr) + Gtk::Clipboard::get()->set_text(msg->Content); +} + ChatMessageItemContainer::type_signal_action_delete ChatMessageItemContainer::signal_action_delete() { return m_signal_action_delete; } diff --git a/components/chatmessage.hpp b/components/chatmessage.hpp index 9da0707..959a8d6 100644 --- a/components/chatmessage.hpp +++ b/components/chatmessage.hpp @@ -43,12 +43,14 @@ protected: Gtk::Menu m_menu; Gtk::MenuItem *m_menu_copy_id; + Gtk::MenuItem *m_menu_copy_content; Gtk::MenuItem *m_menu_delete_message; Gtk::MenuItem *m_menu_edit_message; void on_menu_copy_id(); void on_menu_delete_message(); void on_menu_edit_message(); + void on_menu_copy_content(); Gtk::Box *m_main; Gtk::Label *m_attrib_label = nullptr; |