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):
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):
def launchBrowser(self, settings):
+ log.debug("launchBrowser(%s)", settings)
browser_name = settings.getNameOfBrowserToLaunch()
browser_options = settings.getBrowserOptions()
if 'url' in browser_options:
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)
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
def _usePopupEventCallback(self, gconfClient, id, gconfEntry, x):
+ log.debug("_usePopupEventCallback(%s)", gconfEntry)
self._popup = gconfEntry.get_value().get_bool()