diff frontends/src/primitivus/chat.py @ 801:02ee9ef95277

plugin XEP-0045, primitivus: added MUC configuration
author Goffi <goffi@goffi.org>
date Tue, 04 Feb 2014 18:06:12 +0100
parents bfabeedbf32e
children 1fe00f0c9a91
line wrap: on
line diff
--- a/frontends/src/primitivus/chat.py	Tue Feb 04 18:04:32 2014 +0100
+++ b/frontends/src/primitivus/chat.py	Tue Feb 04 18:06:12 2014 +0100
@@ -24,6 +24,7 @@
 from sat_frontends.quick_frontend.quick_chat import QuickChat
 from sat_frontends.primitivus.card_game import CardGame
 from sat_frontends.quick_frontend.quick_utils import escapePrivate, unescapePrivate
+from sat_frontends.primitivus.xmlui import XMLUI
 import time
 from sat.tools.jid  import JID
 
@@ -131,7 +132,9 @@
         menu = sat_widgets.Menu(self.host.loop)
         if self.type == 'group':
             game = _("Game")
+            muc = _("MUC")
             menu.addMenu(game, "Tarot", self.onTarotRequest)
+            menu.addMenu(muc, _("Configure room"), self.onConfigureRoom)
         elif self.type == 'one2one':
             menu.addMenu(_("Action"), _("Send file"), self.onSendFileRequest)
         return menu
@@ -335,6 +338,13 @@
         else:
             self.host.bridge.tarotGameCreate(self.id, list(self.occupants), self.host.profile)
 
+    def onConfigureRoom(self, menu):
+        def gotUI(xmlui):
+            self.host.addWindow(XMLUI(self.host, xmlui))
+        def configureError(failure):
+            self.host.showPopUp(sat_widgets.Alert(_("Error"), unicode(failure), ok_cb=self.host.removePopUp))
+        self.host.bridge.configureRoom(self.id, self.host.profile, callback=gotUI, errback=configureError)
+
     def onSendFileRequest(self, menu):
         dialog = FileDialog(ok_cb=self.onFileSelected, cancel_cb=self.host.removePopUp)
         self.host.showPopUp(dialog, 80, 80)