changeset 75094d353cc4 in /home/hg/repos/gajim

details:http://hg.gajim.org/gajim?cmd=changeset;node=75094d353cc4
description: handle data forms in groupchat messages. This way room admins can 
handle voice
        requests.

diffstat:

 src/common/connection_handlers_events.py |   2 ++
 src/gui_interface.py                     |  11 +++++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)

diffs (40 lines):

diff -r f585536ea6d1 -r 75094d353cc4 src/common/connection_handlers_events.py
--- a/src/common/connection_handlers_events.py  Tue Mar 13 14:42:52 2012 +0100
+++ b/src/common/connection_handlers_events.py  Tue Mar 13 17:30:48 2012 +0100
@@ -1292,6 +1292,8 @@
                 if self.status_code != []:
                     gajim.nec.push_incoming_event(GcConfigChangedReceivedEvent(
                         None, conn=self.conn, msg_event=self))
+            if self.msg_obj.form_node:
+                return True
             return
 
         self.displaymarking = None
diff -r f585536ea6d1 -r 75094d353cc4 src/gui_interface.py
--- a/src/gui_interface.py      Tue Mar 13 14:42:52 2012 +0100
+++ b/src/gui_interface.py      Tue Mar 13 17:30:48 2012 +0100
@@ -329,6 +329,16 @@
             if gc_control and gc_control.autorejoin:
                 gc_control.autorejoin = False
 
+    def handle_event_gc_message(self, obj):
+        if not obj.stanza.getTag('body'): # no <body>
+            # It could be a voice request. See
+            # http://www.xmpp.org/extensions/xep-0045.html#voiceapprove
+            if obj.msg_obj.form_node:
+                dialogs.SingleMessageWindow(obj.conn.name, obj.fjid,
+                    action='receive', from_whom=obj.fjid,
+                    subject='', message='', resource='', session=None,
+                    form_node=obj.msg_obj.form_node)
+
     def handle_event_presence(self, obj):
         # 'NOTIFY' (account, (jid, status, status message, resource,
         # priority, # keyID, timestamp, contact_nickname))
@@ -1396,6 +1406,7 @@
             'fingerprint-error': [self.handle_event_fingerprint_error],
             'gc-invitation-received': [self.handle_event_gc_invitation],
             'gc-presence-received': [self.handle_event_gc_presence],
+            'gc-message-received': [self.handle_event_gc_message],
             'gmail-notify': [self.handle_event_gmail_notify],
             'gpg-password-required': [self.handle_event_gpg_password_required],
             'gpg-trust-key': [self.handle_event_gpg_trust_key],
_______________________________________________
Commits mailing list
[email protected]
http://lists.gajim.org/cgi-bin/listinfo/commits

Reply via email to