9 def __init__(self, launcher, application_settings, network_settings, hildon_program, hildon_window, list_store):
10 self._launcher = launcher
11 self._application_settings = application_settings
12 self._network_settings = network_settings
13 self._program = hildon_program
14 self._win = hildon_window
15 self._model = list_store
19 self._win.set_title(_("Wifi Assistant"))
20 pannable_area = hildon.PannableArea()
21 from wifi_assistant.gui.network_settings_view import NetworkSettingsView
22 view = NetworkSettingsView(self._model, pannable_area, self._editNetworkSetting)
23 self._win.add(pannable_area)
24 self._win.set_app_menu(self._createMenu())
25 self._win.connect("destroy", gtk.main_quit, None)
31 def _createMenu(self):
32 menu = hildon.AppMenu()
34 about = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
35 about.set_label(_("About"))
36 about.connect("clicked", self._showAboutDialog)
39 settings = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
40 settings.set_label(_("Settings"))
41 settings.connect("clicked", self._editApplicationSettings)
44 add = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
45 add.set_label(_("Add network"))
46 add.connect("clicked", self._addNetworkSetting)
49 delete = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
50 delete.set_label(_("Delete networks"))
51 delete.connect("clicked", self._deleteNetworkSetting)
58 def _showAboutDialog(self, x):
59 from wifi_assistant.gui.about_dialog import AboutDialog
60 AboutDialog(self._launcher, self._win).show()
63 def _editApplicationSettings(self, x):
64 from wifi_assistant.gui.application_settings_dialog import ApplicationSettingsDialog
65 use_popup = self._application_settings.getUsePopup()
66 url_to_open = self._network_settings.getDefaultSettings().getBrowserOptions()['url']
67 ApplicationSettingsDialog(self._win, self._editApplicationSettingsCallback).show(use_popup, url_to_open)
69 def _editApplicationSettingsCallback(self, popup, url):
70 self._application_settings.setUsePopup(popup)
71 settings = self._network_settings.getDefaultSettings()
72 settings.getBrowserOptions()['url'] = url
73 self._network_settings.save(settings)
76 def _editNetworkSetting(self, ssid, model, iter):
77 from wifi_assistant.gui.edit_network_dialog import EditNetworkDialog
78 network_name, x = model.get(iter, 0, 1)
79 EditNetworkDialog(self._win, self._editNetworkSettingCallback).show(iter, network_name)
81 def _editNetworkSettingCallback(self, iter, ssid, launch_browser):
82 # TODO: REMOVE ssid from arg list, extract like delete networks do?
83 #self._settings.setLaunchSetting(ssid, launch_browser)
84 settings = self._network_settings.get(ssid)
85 settings.setLaunchingOfBrowserEnabled(launch_browser)
86 self._network_settings.save(settings)
87 self._model.set(iter, 1, launch_browser)
90 def _addNetworkSetting(self, x):
91 from wifi_assistant.gui.add_network_dialog import AddNetworkDialog
92 AddNetworkDialog(self._win, self._addNetworkSettingCallback).show()
94 def _addNetworkSettingCallback(self, network_name, launch_browser):
95 settings = self._network_settings.getDefaultSettings()
96 settings.setNetworkName(network_name)
97 settings.setLaunchingOfBrowserEnabled(launch_browser)
98 self._network_settings.save(settings)
99 self._model.append([network_name, launch_browser])
101 # FIXME: on append, if len == 1, change main view from label to tree view
102 # but do this with the model
105 def _deleteNetworkSetting(self, x):
106 from wifi_assistant.gui.delete_networks_dialog import DeleteNetworksDialog
107 DeleteNetworksDialog(self._model, self._deleteNetworkSettingCallback).show()
109 def _deleteNetworkSettingCallback(self, model, row_references):
110 for ref in row_references:
111 path = ref.get_path()
112 iter = model.get_iter(path)
113 ssid, x = model.get(iter, 0, 1)
114 settings = self._network_settings.get(ssid)
115 self._network_settings.delete(settings)