major rewrite
[wifi-assistant] / package / src / wifi_assistant / gui / delete_networks_dialog.py
diff --git a/package/src/wifi_assistant/gui/delete_networks_dialog.py b/package/src/wifi_assistant/gui/delete_networks_dialog.py
new file mode 100644 (file)
index 0000000..2317e7f
--- /dev/null
@@ -0,0 +1,79 @@
+#!/usr/bin/python2.5
+import gtk, hildon
+
+def _(str):
+    return str
+
+class DeleteNetworksDialog():
+    
+    TOOLBAR_DELETE_BUTTON_EVENT = "button-clicked"
+    TOOLBAR_BACK_BUTTON_EVENT = "arrow-clicked" 
+    
+    def __init__(self, model, deleteCallback):
+        """deleteCallback(model, [iter_path])"""
+        
+        self._model = model
+        self._deleteCallback = deleteCallback
+
+
+    def show(self):
+        # TODO: if model is empty, show banner instead: "Nothing to remove"
+        self._window = hildon.StackableWindow()
+        self._window.set_border_width(6)
+     
+        area = hildon.PannableArea()
+        tree_view = self._createDeleteView()
+        area.add(tree_view)
+        self._window.add(area)
+     
+        self._toolbar = hildon.EditToolbar(_("Choose network settings to delete"), _("Delete"))
+        self._toolbar.connect(DeleteNetworksDialog.TOOLBAR_DELETE_BUTTON_EVENT, self._deleteButtonClicked, tree_view)
+        self._toolbar.connect(DeleteNetworksDialog.TOOLBAR_BACK_BUTTON_EVENT, self._backButtonClicked)
+        self._window.set_edit_toolbar(self._toolbar)
+     
+        self._window.show_all()
+        self._window.fullscreen()
+        
+        self._runDialog()
+
+
+    #self._toolbar.connect_object("arrow-clicked", gtk.Window.destroy, self._window)
+    def _backButtonClicked(self, button):
+        self._window.destroy()
+
+
+    def _deleteButtonClicked(self, button, treeview):
+        selection = treeview.get_selection()
+     
+        (model, selected_rows) = selection.get_selected_rows()
+        
+        # TODO: are you sure?
+     
+        row_references = []
+        for path in selected_rows:
+            ref = gtk.TreeRowReference(model, path)
+            row_references.append(ref)
+        
+        self._deleteCallback(model, row_references)
+        
+        self._window.destroy() 
+
+
+    def _createDeleteView(self):
+        tv = hildon.GtkTreeView(gtk.HILDON_UI_MODE_EDIT)
+        renderer = gtk.CellRendererText()
+        col = gtk.TreeViewColumn(_("Networks"), renderer, text=0)
+     
+        tv.append_column(col)
+     
+        # Set multiple selection mode
+        selection = tv.get_selection()
+        selection.set_mode(gtk.SELECTION_MULTIPLE)
+     
+        tv.set_model(self._model)
+     
+        return tv
+
+
+    def _runDialog(self):
+        pass