7 class NetworkSettingsView():
9 def __init__(self, list_store, parent_container, edit_network_settings_callback):
10 """edit_network_settings_callback(ssid, model, iter)""" # FIXME: abstraction layer violation
11 self._parent = parent_container
12 self._model = list_store
13 self._edit_network_settings_callback = edit_network_settings_callback
15 self._active_widget = None
16 self._zero_settings_label = gtk.Label(_('There are no settings saved for any network.'))
17 self._network_settings_list = self._createNetworkSettingsList()
19 self._registerListeners()
22 def update(self, *args):
23 if len(self._model) == 0:
24 self._activateZeroSettingsLabel()
26 self._activateNetworkSettingsList()
29 def _activateNetworkSettingsList(self):
30 self._activateWidget(self._network_settings_list)
33 def _activateZeroSettingsLabel(self):
34 self._activateWidget(self._zero_settings_label)
37 def _activateWidget(self, widget):
38 if self._active_widget is not None:
39 self._parent.remove(self._active_widget)
40 self._active_widget = None
41 self._parent.add(widget)
42 self._parent.show_all()
43 self._active_widget = widget
46 def _createNetworkSettingsList(self):
47 # view = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL, model)
48 # view = hildon.GtkTreeView(gtk.HILDON_UI_MODE_NORMAL, model)
50 view = gtk.TreeView(self._model)
51 view.set_border_width(5)
53 def boolean_func(column, cell, model, iter):
54 if model.get_value(iter, 1):
58 cell.set_property('stock-id', stock_id)
60 launch_cell = gtk.CellRendererPixbuf()
61 launch_cell.set_fixed_size(100, 50)
62 view.insert_column_with_data_func(1, _('Launch'), launch_cell, boolean_func)
63 # toggle_cell = gtk.CellRendererToggle()
64 # toggle_cell.set_fixed_size(100, 50)
65 # view.append_column( gtk.TreeViewColumn( '', toggle_cell, active=1))
67 tvcolumn = gtk.TreeViewColumn(_('SSID'), gtk.CellRendererText(), text=0)
68 tvcolumn.set_expand(True)
69 view.append_column(tvcolumn)
71 view.connect('row-activated', self._rowActivatedCallback)
72 view.set_search_column(0)
73 tvcolumn.set_sort_column_id(0)
78 def _registerListeners(self):
79 self._model.connect("row-deleted", self.update)
80 self._model.connect("row-inserted", self.update)
82 # FIXME: use this to test:
83 # _model.row_deleted(path)
84 # _model.row_inserted(path, iter)
87 def _rowActivatedCallback(self, treeview, path, view_column):
88 model = treeview.get_model()
89 iter = model.get_iter(path)
90 ssid = model.get_value(iter, 0)
91 self._edit_network_settings_callback(ssid, model, iter)