diff frontends/wix/gateways.py @ 37:a61beb21d16d

Gateway registration, unregistration & edition - default values added in form - DBus bridge: fixed array of struct management when adding dynamically a method - fixed doc for some methods - ugly fix for presence status - added dependency for XEP-0077 in XEP-0100 plugin - Wix: added unregister button in gateways manager - Wix: added privacy warning in gateways manager
author Goffi <goffi@goffi.org>
date Tue, 15 Dec 2009 01:27:32 +1100
parents c45deebb40a5
children 2e3411a6baad
line wrap: on
line diff
--- a/frontends/wix/gateways.py	Mon Dec 14 02:11:05 2009 +1100
+++ b/frontends/wix/gateways.py	Tue Dec 15 01:27:32 2009 +1100
@@ -27,6 +27,8 @@
 from logging import debug, info, error
 from tools.jid  import JID
 
+WARNING_MSG = u"""Be careful ! Gateways allow you to use an external IM (legacy IM), so you can see your contact as jabber contacts.
+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"):
@@ -44,8 +46,14 @@
         self.ctl_list = {}  # usefull to access ctrl, key = (name, category)
 
         self.sizer = wx.BoxSizer(wx.VERTICAL)
+        warning = wx.TextCtrl(self, -1, value=WARNING_MSG, style = wx.TE_MULTILINE |
+                                                                       wx.TE_READONLY |
+                                                                       wx.TE_LEFT)
+        warning.SetFont(self.bold_font)
+        self.sizer.Add(warning, 0, wx.EXPAND)
+        warning.ShowPosition(0)
         self.panel = wx.Panel(self)
-        self.panel.sizer = wx.FlexGridSizer(cols=4)
+        self.panel.sizer = wx.FlexGridSizer(cols=5)
         self.panel.SetSizer(self.panel.sizer)
         self.panel.SetAutoLayout(True)
         self.sizer.Add(self.panel, 1, flag=wx.EXPAND)
@@ -64,12 +72,14 @@
         self.panel.sizer.Add(title_name)
         self.panel.sizer.Add(title_type)
         self.panel.sizer.Add(wx.Window(self.panel, -1))
+        self.panel.sizer.Add(wx.Window(self.panel, -1))
     
         for gateway in gateways:
             self.addGateway(gateway, gateways[gateway])
 
         
-        self.panel.sizer.Fit(self)
+        #self.panel.sizer.Fit(self)
+        self.sizer.Fit(self)
         
         self.Show()
 
@@ -121,24 +131,40 @@
             id = self.host.bridge.in_band_register(gateway_jid)
             self.host.current_action_ids.add(id)
             print "register id:",id
+            self.MakeModal(False) 
+            self.Destroy()
             event.Skip()
 
+        def unregister_cb(event):
+            """Called when unregister button is clicked"""
+            gateway_jid = event.GetEventObject().gateway_jid
+            id = self.host.bridge.gatewayRegister("CANCEL",gateway_jid, None)
+            self.host.current_action_ids.add(id)
+            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.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.gateway_jid = JID(gateway)
+        self.panel.Bind(wx.EVT_BUTTON, unregister_cb, unreg_button)
+        
         self.panel.sizer.Add(im_icon)
         self.panel.sizer.Add(label)
         self.panel.sizer.Add(type_label)
         self.panel.sizer.Add(reg_button, 1, wx.EXPAND)
+        self.panel.sizer.Add(unreg_button, 1, wx.EXPAND)
 
 
     def onClose(self, event):
         """Close event"""
         debug("close")
-        #now we save the modifier params
         self.MakeModal(False)
         event.Skip()