changeset a1b1b74e51ea in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=a1b1b74e51ea
description: use NEC to handle jingle-error events

diffstat:

 src/common/connection_handlers_events.py |  10 ++++++++++
 src/common/jingle_session.py             |   5 +++--
 src/gui_interface.py                     |  14 ++++++--------
 3 files changed, 19 insertions(+), 10 deletions(-)

diffs (74 lines):

diff -r 2a0380c9d468 -r a1b1b74e51ea src/common/connection_handlers_events.py
--- a/src/common/connection_handlers_events.py  Thu Nov 04 15:28:58 2010 +0000
+++ b/src/common/connection_handlers_events.py  Fri Nov 05 11:08:06 2010 +0100
@@ -1142,4 +1142,14 @@
         self.fjid = self.jingle_session.peerjid
         self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
         self.sid = self.jingle_session.sid
+        return True
+
+class JingleErrorReceivedEvent(nec.NetworkIncomingEvent):
+    name = 'jingle-error-received'
+    base_network_events = []
+
+    def generate(self):
+        self.fjid = self.jingle_session.peerjid
+        self.jid, self.resource = gajim.get_room_and_nick_from_fjid(self.fjid)
+        self.sid = self.jingle_session.sid
         return True
\ No newline at end of file
diff -r 2a0380c9d468 -r a1b1b74e51ea src/common/jingle_session.py
--- a/src/common/jingle_session.py      Thu Nov 04 15:28:58 2010 +0000
+++ b/src/common/jingle_session.py      Fri Nov 05 11:08:06 2010 +0100
@@ -534,8 +534,9 @@
         if text:
             text = '%s (%s)' % (error, text)
         if type_ != 'modify':
-            self.connection.dispatch('JINGLE_ERROR',
-                (self.peerjid, self.sid, text or error))
+            gajim.nec.push_incoming_event(JingleErrorReceivedEvent(None,
+                conn=self.connection, jingle_session=self,
+                reason=text or error))
 
     def __reason_from_stanza(self, stanza):
         # TODO: Move to GUI?
diff -r 2a0380c9d468 -r a1b1b74e51ea src/gui_interface.py
--- a/src/gui_interface.py      Thu Nov 04 15:28:58 2010 +0000
+++ b/src/gui_interface.py      Fri Nov 05 11:08:06 2010 +0100
@@ -1585,15 +1585,13 @@
             else:
                 dialog.remove_contents((obj.media, ))
 
-    def handle_event_jingle_error(self, account, data):
+    def handle_event_jingle_error(self, obj):
         # ('JINGLE_ERROR', account, (peerjid, sid, reason))
-        peerjid, sid, reason = data
-        jid = gajim.get_jid_without_resource(peerjid)
-        resource = gajim.get_resource_from_jid(peerjid)
-        ctrl = (self.msg_win_mgr.get_control(peerjid, account)
-            or self.msg_win_mgr.get_control(jid, account))
+        account = obj.conn.name
+        ctrl = (self.msg_win_mgr.get_control(obj.fjid, account)
+            or self.msg_win_mgr.get_control(obj.jid, account))
         if ctrl:
-            ctrl.set_audio_state('error', reason=reason)
+            ctrl.set_audio_state('error', reason=obj.reason)
 
     def handle_event_pep_config(self, account, data):
         # ('PEP_CONFIG', account, (node, form))
@@ -1899,7 +1897,6 @@
             'INSECURE_SSL_CONNECTION': \
                 [self.handle_event_insecure_ssl_connection],
             'INSECURE_PASSWORD': [self.handle_event_insecure_password],
-            'JINGLE_ERROR': [self.handle_event_jingle_error],
             'PEP_RECEIVED': [self.handle_event_pep_received],
             'CAPS_RECEIVED': [self.handle_event_caps_received],
             'ARCHIVING_CHANGED': [self.handle_event_archiving_changed],
@@ -1913,6 +1910,7 @@
             'jingle-connected-received': [self.handle_event_jingle_connected],
             'jingle-disconnected-received': [
                 self.handle_event_jingle_disconnected],
+            'jingle-error-received': [self.handle_event_jingle_error],
             'jingle-request-received': [self.handle_event_jingle_incoming],
             'last-result-received': [self.handle_event_last_status_time],
             'muc-admin-received': [self.handle_event_gc_affiliation],
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to