Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/gajim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2012-03-13 20:30:48 +0400
committerYann Leboulanger <asterix@lagaule.org>2012-03-13 20:30:48 +0400
commit2a1f9d2abb7deab685abca19dcd0e810094530ec (patch)
tree2e573bd80dd521a9e5b5b1235e643411af5d43a9
parent70d2fb435bd35b4867fdceb7217d68af59ccd5c0 (diff)
handle data forms in groupchat messages. This way room admins can handle voice
requests.
-rw-r--r--src/common/connection_handlers_events.py2
-rw-r--r--src/gui_interface.py11
2 files changed, 13 insertions, 0 deletions
diff --git a/src/common/connection_handlers_events.py b/src/common/connection_handlers_events.py
index 1b5e31652..41f989d69 100644
--- a/src/common/connection_handlers_events.py
+++ b/src/common/connection_handlers_events.py
@@ -1280,6 +1280,8 @@ class GcMessageReceivedEvent(nec.NetworkIncomingEvent):
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 --git a/src/gui_interface.py b/src/gui_interface.py
index c829fae32..726ce527c 100644
--- a/src/gui_interface.py
+++ b/src/gui_interface.py
@@ -329,6 +329,16 @@ class Interface:
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))
@@ -1415,6 +1425,7 @@ class Interface:
'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],