From 556afac13411cd9ab2941aa00edcb176c5d3303e Mon Sep 17 00:00:00 2001 From: tmolitor Date: Mon, 5 Sep 2016 23:07:31 +0200 Subject: [PATCH] Added ability to use additional_data for directly sent messages not coming from history db. --- src/chat_control.py | 14 +++++++------- src/common/connection.py | 2 +- src/roster_window.py | 2 +- src/session.py | 8 +++++--- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/src/chat_control.py b/src/chat_control.py index bf3556234..f5c18a063 100644 --- a/src/chat_control.py +++ b/src/chat_control.py @@ -791,11 +791,11 @@ class ChatControlBase(MessageControl, ChatCommandProcessor, CommandTools): label = self.get_seclabel() - def _cb(msg, cb, *cb_args): + def _cb(obj, msg, cb, *cb_args): self.last_sent_msg = msg self.last_sent_txt = cb_args[0] if cb: - cb(msg, *cb_args) + cb(obj, msg, *cb_args) if self.correcting and self.last_sent_msg: correction_msg = self.last_sent_msg @@ -2319,7 +2319,7 @@ class ChatControl(ChatControlBase): GLib.source_remove(self.possible_inactive_timeout_id) self._schedule_activity_timers() - def _on_sent(msg_stanza, message, encrypted, xhtml, label, old_txt): + def _on_sent(obj, msg_stanza, message, encrypted, xhtml, label, old_txt): id_ = msg_stanza.getID() if self.contact.supports(NS_RECEIPTS) and gajim.config.get_per( 'accounts', self.account, 'request_receipt'): @@ -2333,14 +2333,14 @@ class ChatControl(ChatControlBase): if self.correcting and \ self.conv_textview.last_sent_message_marks[0]: self.conv_textview.correct_last_sent_message(message, xhtml, - self.get_our_nick(), old_txt) + self.get_our_nick(), old_txt, additional_data=obj.additional_data) self.correcting = False self.msg_textview.override_background_color( Gtk.StateType.NORMAL, self.old_message_tv_color) return self.print_conversation(message, self.contact.jid, encrypted=encrypted, xep0184_id=xep0184_id, xhtml=xhtml, - displaymarking=displaymarking) + displaymarking=displaymarking, additional_data=obj.additional_data) ChatControlBase.send_message(self, message, keyID, type_='chat', chatstate=chatstate_to_send, xhtml=xhtml, callback=_on_sent, @@ -2457,7 +2457,7 @@ class ChatControl(ChatControlBase): def print_conversation(self, text, frm='', tim=None, encrypted=False, subject=None, xhtml=None, simple=False, xep0184_id=None, - displaymarking=None, msg_log_id=None, correct_id=None): + displaymarking=None, msg_log_id=None, correct_id=None, additional_data={}): """ Print a line in the conversation @@ -2522,7 +2522,7 @@ class ChatControl(ChatControlBase): ChatControlBase.print_conversation_line(self, text, kind, name, tim, subject=subject, old_kind=self.old_msg_kind, xhtml=xhtml, simple=simple, xep0184_id=xep0184_id, displaymarking=displaymarking, - msg_log_id=msg_log_id, correct_id=correct_id) + msg_log_id=msg_log_id, correct_id=correct_id, additional_data=additional_data) if text.startswith('/me ') or text.startswith('/me\n'): self.old_msg_kind = None else: diff --git a/src/common/connection.py b/src/common/connection.py index c40a43a1b..1e5220ea3 100644 --- a/src/common/connection.py +++ b/src/common/connection.py @@ -2176,7 +2176,7 @@ class Connection(CommonConnection, ConnectionHandlers): jid=jid, message=msg, keyID=keyID, chatstate=obj.chatstate, automatic_message=obj.automatic_message, msg_id=msg_id, additional_data=obj.additional_data)) if obj.callback: - obj.callback(msg_iq, *obj.callback_args) + obj.callback(obj, msg_iq, *obj.callback_args) if not obj.is_loggable: return diff --git a/src/roster_window.py b/src/roster_window.py index 1af590b1b..5c94e1a6c 100644 --- a/src/roster_window.py +++ b/src/roster_window.py @@ -1861,7 +1861,7 @@ class RosterWindow: tim = time.localtime(float(result[2])) session.roster_message(jid, result[1], tim, msg_type='chat', - msg_log_id=result[0]) + msg_log_id=result[0], additional_data=additional_data) gajim.logger.set_shown_unread_msgs(result[0]) elif (time.time() - result[2]) > 2592000: diff --git a/src/session.py b/src/session.py index 93bf422ec..84f8c674d 100644 --- a/src/session.py +++ b/src/session.py @@ -267,7 +267,7 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession): def roster_message(self, jid, msg, tim, encrypted=False, msg_type='', subject=None, resource='', msg_log_id=None, user_nick='', xhtml=None, - form_node=None, displaymarking=None): + form_node=None, displaymarking=None, additional_data={}): """ Display the message or show notification in the roster """ @@ -333,7 +333,8 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession): typ = 'error' self.control.print_conversation(msg, typ, tim=tim, encrypted=encrypted, - subject=subject, xhtml=xhtml, displaymarking=displaymarking) + subject=subject, xhtml=xhtml, displaymarking=displaymarking, + additional_data=additional_data) if msg_log_id: gajim.logger.set_read_messages([msg_log_id]) @@ -356,7 +357,8 @@ class ChatControlSession(stanza_session.EncryptedStanzaSession): event = event_t(msg, subject, msg_type, tim, encrypted, resource, msg_log_id, xhtml=xhtml, session=self, form_node=form_node, displaymarking=displaymarking, sent_forwarded=False, - show_in_roster=show_in_roster, show_in_systray=show_in_systray) + show_in_roster=show_in_roster, show_in_systray=show_in_systray, + additional_data=additional_data) gajim.events.add_event(self.conn.name, fjid, event)