Mercurial > libervia-backend
diff frontends/wix/gateways.py @ 39:2e3411a6baad
Wix: external server management in gateways manager, SàT: bug fixes in gateway management
- SàT: from twisted.words.protocols.jabber.error module imported as jab_error to avoir name colision with error log method
- XEP_0100 plugin: added errback for disco info
- XEP_0077 plugin: registration callback now look for "x" element (data form: see XEP-0004), and send an error message if it can't find it.
- Wix: added fields for browsing external server gateways
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 17 Dec 2009 17:29:02 +1100 |
parents | a61beb21d16d |
children | a5b5fb5fc9fd |
line wrap: on
line diff
--- a/frontends/wix/gateways.py Thu Dec 17 13:13:13 2009 +1100 +++ b/frontends/wix/gateways.py Thu Dec 17 17:29:02 2009 +1100 @@ -31,15 +31,18 @@ But when you do this, all your messages go throught the external legacy IM server, it is a huge privacy issue (i.e.: all your messages throught the gateway can be monitored, recorded, analyzed by the external server, most of time a private company).""" class GatewaysManager(wx.Frame): - def __init__(self, host, gateways, title="Gateways manager"): + def __init__(self, host, gateways, title="Gateways manager", server=None): super(GatewaysManager, self).__init__(None, title=title) self.host = host + if server: + self.SetTitle(title+" (%s)" % server) #Fonts self.normal_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.NORMAL) self.bold_font = wx.Font(8, wx.DEFAULT, wx.NORMAL, wx.BOLD) self.italic_font = wx.Font(8, wx.DEFAULT, wx.FONTSTYLE_ITALIC, wx.NORMAL) + self.button_font = wx.Font(6, wx.DEFAULT, wx.NORMAL, wx.BOLD) self.modified = {} # dict of modified data (i.e. what we have to save) @@ -77,14 +80,40 @@ for gateway in gateways: self.addGateway(gateway, gateways[gateway]) + self.ext_server_panel = wx.Panel(self) + self.ext_server_panel.sizer = wx.BoxSizer(wx.HORIZONTAL) + self.ext_server_panel.SetSizer(self.ext_server_panel.sizer) + self.ext_server_panel.SetAutoLayout(True) + self.sizer.Add(self.ext_server_panel, 0, flag=wx.EXPAND) + + ext_server_label = wx.StaticText(self.ext_server_panel, -1, "Use external XMPP server: ") + ext_server_label.SetFont(wx.ITALIC_FONT) + self.ext_server_text = wx.TextCtrl(self.ext_server_panel, -1) + ext_server_button = wx.Button(self.ext_server_panel, -1, "GO !") + self.ext_server_panel.Bind(wx.EVT_BUTTON, self.browseExternalServer, ext_server_button) + + self.ext_server_panel.sizer.Add(ext_server_label) + self.ext_server_panel.sizer.Add(self.ext_server_text, 1, flag=wx.EXPAND) + self.ext_server_panel.sizer.Add(ext_server_button) #self.panel.sizer.Fit(self) self.sizer.Fit(self) self.Show() + def browseExternalServer(self, event): + """Open the gateway manager on given server""" + server = self.ext_server_text.GetValue() + debug("Opening gateways manager on [%s]" % server) + id = self.host.bridge.findGateways(server) + self.host.current_action_ids.add(id) + self.host.current_action_ids_cb[id] = self.host.onGatewaysFound + self.MakeModal(False) + self.Destroy() + + def addGateway(self, gateway, param): - + #First The icon @@ -133,7 +162,6 @@ print "register id:",id self.MakeModal(False) self.Destroy() - event.Skip() def unregister_cb(event): """Called when unregister button is clicked""" @@ -143,15 +171,13 @@ print "unregister id:",id self.MakeModal(False) self.Destroy() - event.Skip() - button_font = wx.Font(6, wx.DEFAULT, wx.NORMAL, wx.BOLD) reg_button = wx.Button(self.panel, -1, "Register", size=wx.Size(-1, 8)) - reg_button.SetFont(button_font) + reg_button.SetFont(self.button_font) reg_button.gateway_jid = JID(gateway) self.panel.Bind(wx.EVT_BUTTON, register_cb, reg_button) unreg_button = wx.Button(self.panel, -1, "Unregister", size=wx.Size(-1, 8)) - unreg_button.SetFont(button_font) + unreg_button.SetFont(self.button_font) unreg_button.gateway_jid = JID(gateway) self.panel.Bind(wx.EVT_BUTTON, unregister_cb, unreg_button)