* added logging in daemon
[wifi-assistant] / package / src / wifi_assistant / daemon / daemon.py
index 5948e17..ba46949 100644 (file)
@@ -2,12 +2,15 @@
 import gtk, hildon
 import conic
 import gobject
+import logging
 
 from launcher import Launcher
 
 def _(str):
     return str
 
+log = logging.getLogger("wfdaemon")
+
 class Daemon():
     
     def __init__(self, launcher, application_settings, network_settings, parent_window):
@@ -16,9 +19,11 @@ class Daemon():
         self._parent = parent_window
         self._launcher = launcher
         self._popup = self._application_settings.getUsePopup()
+        log.debug("_popup(%s)", self._popup)
 
 
     def connectionEstablished(self, ssid):
+        log.debug("connectionEstablished(%s)", ssid)
         settings = self._network_settings.get(ssid)
         if settings is None:
             if self.showDecisionDialog(ssid):
@@ -31,6 +36,7 @@ class Daemon():
     
 
     def launchBrowser(self, settings):
+        log.debug("launchBrowser(%s)", settings)
         browser_name = settings.getNameOfBrowserToLaunch()
         browser_options = settings.getBrowserOptions()
         if 'url' in browser_options:
@@ -41,26 +47,28 @@ class Daemon():
             self.launchBrowser(settings)
     
     def showDecisionDialog(self, ssid):
+        log.debug("showDecisionDialog(%s)", ssid)
         if not self._popup:
             return False
         
-        dialog = self._createDialog(ssid)
+        from wifi_assistant.gui.popup_dialog import PopupDialog
+        PopupDialog(self._parent, self._showDecisionDialogCallback).show(ssid)
         
-        dialog.show_all()
-        result = dialog.run()
-        dialog.hide()
+    def _showDecisionDialogCallback(self, ssid, launch_browser, remember):        
+        log.debug("_showDecisionDialogCallback(%s, %s, %s)", ssid, launch_browser, remember)
+        setting = self._network_settings.getDefaultSettings()
+        setting.setNetworkName(ssid)
+        setting.setLaunchingOfBrowserEnabled(launch_browser)
         
-        launch_browser = (result == gtk.RESPONSE_YES)
-        if checkbox.get_active():
-            setting = NetworkSetting()
-            setting.setNetworkName(ssid)
-            setting.setLaunchingOfBrowserEnabled(launch_browser)
+        if remember:
             self._network_settings.save(setting)
         
-        return launch_browser
+        if launch_browser:
+            self.launchBrowser(setting)
     
     
     def start(self):
+        log.debug("start")
         self._connection = conic.Connection()
         self._connection.connect("connection-event", self._connectionEventCallback)
         self._connection.set_property("automatic-connection-events", True)
@@ -69,32 +77,13 @@ class Daemon():
         
      
     def stop(self):
+        log.debug("stop")
         self._application_settings.unregisterUsePopupListener(self._usePopupEventCallback)
         self._connection.set_property("automatic-connection-events", False)
         
     
-    def _createDialog(self, ssid):
-        dialog = gtk.Dialog(ssid, self._parent)
-        dialog.vbox.set_homogeneous(False)
-        
-        dialog.add_button(_('No'), gtk.RESPONSE_NO)
-        dialog.add_button(_('Yes'), gtk.RESPONSE_YES)
-        
-        label = gtk.Label(_('New network connection established - do you wish to launch a browser?'))
-        label.set_line_wrap(True)
-        #label.set_justify(gtk.JUSTIFY_LEFT)
-        #label.set_alignment(0, 0.5)
-        dialog.vbox.add(label)
-    
-        checkbox = hildon.CheckButton(gtk.HILDON_SIZE_FINGER_HEIGHT)
-        checkbox.set_label(_('Remember this decision'))
-        checkbox.set_active(True)
-        dialog.vbox.add(checkbox)
-        
-        return dialog
-    
-        
     def _connectionEventCallback(self, connection, event):
+        log.debug("_connectionEventCallback(%s)", event)
         status = event.get_status()
         if status == conic.STATUS_CONNECTED:
             # assemble id > name dict
@@ -114,6 +103,7 @@ class Daemon():
     
 
     def _usePopupEventCallback(self, gconfClient, id, gconfEntry, x):
+        log.debug("_usePopupEventCallback(%s)", gconfEntry)
         self._popup = gconfEntry.get_value().get_bool()