summaryrefslogtreecommitdiff
path: root/components/chatwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'components/chatwindow.cpp')
-rw-r--r--components/chatwindow.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/components/chatwindow.cpp b/components/chatwindow.cpp
index ea8da69..25492f8 100644
--- a/components/chatwindow.cpp
+++ b/components/chatwindow.cpp
@@ -128,6 +128,14 @@ Snowflake ChatWindow::GetOldestListedMessage() {
return m;
}
+void ChatWindow::UpdateReactions(Snowflake id) {
+ auto it = m_id_to_widget.find(id);
+ if (it == m_id_to_widget.end()) return;
+ auto *widget = dynamic_cast<ChatMessageItemContainer *>(it->second);
+ if (widget == nullptr) return;
+ widget->UpdateReactions();
+}
+
Snowflake ChatWindow::GetActiveChannel() const {
return m_active_channel;
}
@@ -206,6 +214,12 @@ void ChatWindow::ProcessNewMessage(Snowflake id, bool prepend) {
content->signal_action_edit().connect([this, id] {
m_signal_action_message_edit.emit(m_active_channel, id);
});
+ content->signal_action_reaction_add().connect([this, id](const Glib::ustring &param) {
+ m_signal_action_reaction_add.emit(id, param);
+ });
+ content->signal_action_reaction_remove().connect([this, id](const Glib::ustring &param) {
+ m_signal_action_reaction_remove.emit(id, param);
+ });
content->signal_image_load().connect([this, id](std::string url) {
auto &mgr = Abaddon::Get().GetImageManager();
mgr.LoadFromURL(url, [this, id, url](Glib::RefPtr<Gdk::Pixbuf> buf) {
@@ -339,3 +353,11 @@ ChatWindow::type_signal_action_insert_mention ChatWindow::signal_action_insert_m
ChatWindow::type_signal_action_open_user_menu ChatWindow::signal_action_open_user_menu() {
return m_signal_action_open_user_menu;
}
+
+ChatWindow::type_signal_action_reaction_add ChatWindow::signal_action_reaction_add() {
+ return m_signal_action_reaction_add;
+}
+
+ChatWindow::type_signal_action_reaction_remove ChatWindow::signal_action_reaction_remove() {
+ return m_signal_action_reaction_remove;
+}