From 7e19f224348385ad880dd0313bdbb07e3310e08e Mon Sep 17 00:00:00 2001 From: epage Date: Sat, 16 May 2009 20:35:53 +0000 Subject: [PATCH] Cleanup of SimpleList git-svn-id: file:///svnroot/quicknote/trunk@45 bb7704e3-badb-4cfa-9ab3-9374dc87eaa2 --- src/simple_list.py | 127 +++++++++++++++++++++++++++------------------------- 1 file changed, 66 insertions(+), 61 deletions(-) diff --git a/src/simple_list.py b/src/simple_list.py index 027185a..b4678b7 100644 --- a/src/simple_list.py +++ b/src/simple_list.py @@ -27,51 +27,54 @@ class SimpleList(gtk.ScrolledWindow): den Objekten ScrolledWindow und TreeView erreicht. """ + KEY_IDX = 0 + VALUE_IDX = 1 + def __init__(self): """ Initialisieren """ gtk.ScrolledWindow.__init__(self) - self.selected_item = None # (, , ) + self._selectedItem = None # (, , ) # Liste - self.list_store = gtk.ListStore(str, str) + self._itemlist = gtk.ListStore(str, str) # ScrolledWindow self.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) self.set_shadow_type(gtk.SHADOW_IN) # Treeview - self.tree_view = gtk.TreeView(self.list_store) - self.tree_view.set_headers_visible(False) - self.tree_view.get_selection().set_mode(gtk.SELECTION_BROWSE) - self.tree_view.connect("cursor-changed", self._on_cursor_changed) - self.tree_view.connect("row-activated", self._on_row_activated) - self.tree_view.show() + self._itemView = gtk.TreeView(self._itemlist) + self._itemView.set_headers_visible(False) + self._itemView.get_selection().set_mode(gtk.SELECTION_BROWSE) + self._itemView.connect("cursor-changed", self._on_cursor_changed) + self._itemView.connect("row-activated", self._on_row_activated) + self._itemView.show() # Key-Spalte hinzuf�gen - self.key_cell = gtk.CellRendererText() - self.key_column = gtk.TreeViewColumn("Key") - self.key_column.pack_start(self.key_cell, True) - self.key_column.add_attribute(self.key_cell, "text", 0) - self.key_column.set_visible(False) - self.tree_view.append_column(self.key_column) + self._keyCell = gtk.CellRendererText() + self._keyColumn = gtk.TreeViewColumn("Key") + self._keyColumn.pack_start(self._keyCell, True) + self._keyColumn.add_attribute(self._keyCell, "text", self.KEY_IDX) + self._keyColumn.set_visible(False) + self._itemView.append_column(self._keyColumn) # Value-Spalte hinzufügen - self.value_cell = gtk.CellRendererText() - self.value_column = gtk.TreeViewColumn("Caption") - self.value_column.pack_start(self.value_cell, True) - self.value_column.add_attribute(self.value_cell, "text", 1) - self.tree_view.append_column(self.value_column) + self._valueCell = gtk.CellRendererText() + self._valueColumn = gtk.TreeViewColumn("Caption") + self._valueColumn.pack_start(self._valueCell, True) + self._valueColumn.add_attribute(self._valueCell, "text", self.VALUE_IDX) + self._itemView.append_column(self._valueColumn) # Suchspalte setzen # Leider funktioniert die Suche im Moment nicht so # wie ich das möchte. Deshalb habe ich die Suche abgeschaltet. - self.tree_view.set_enable_search(False) + self._itemView.set_enable_search(False) # Anzeigen - self.add(self.tree_view) + self.add(self._itemView) self.show() def append_item(self, value, key = ""): @@ -79,69 +82,71 @@ class SimpleList(gtk.ScrolledWindow): F�gt der Liste Werte und wenn gew�nscht, Schl�ssel hinzu. """ - self.list_store.append([key, value]) + self._itemlist.append([key, value]) def select_last_item(self): - path = str(len(self.list_store)-1) - self.tree_view.set_cursor(path, self.value_column) - return len(self.list_store)-1 + path = str(len(self._itemlist)-1) + self._itemView.set_cursor(path, self._valueColumn) + return len(self._itemlist)-1 def change_item(self, pos, value, key = ""): - self.list_store[pos] = [key, value] + self._itemlist[pos] = [key, value] def remove_item(self, pos): - model = self.tree_view.get_model() - self.list_store.remove(model.get_iter(str(pos))) + model = self._itemView.get_model() + self._itemlist.remove(model.get_iter(str(pos))) def get_item(self, pos): - return self.list_store[pos] + return self._itemlist[pos] def clear_items(self): - self.list_store.clear() + self._itemlist.clear() - def _on_row_activated(self, treeview, path, view_column, data = None): + def get_selection_data(self): """ - Setzt den Wert von self.selected_items. Dieser Wert kann - mit der Methode "get_selection_data" abgerufen werden. + Gibt die Variable self._selectedItem zur�ck. + Diese enth�lt ein Tupel. (, , ) """ - iter = self.list_store.get_iter(path) - - if iter: - self.selected_item = ( - path[0], # Position - self.list_store.get_value(iter, 0), # Key - self.list_store.get_value(iter, 1) # Value - ) + return self._selectedItem # (, , ) - def _on_cursor_changed(self, widget, data1 = None, data2 = None): + def set_eventfunction_cursor_changed(self, function): """ - Setzt den Wert von self.selected_items. Dieser Wert kann - mit der Methode "get_selection_data" abgerufen werden. + Verbindet die �bergebene Funktion mit dem + Signal "cursor-changed". """ - selection = widget.get_selection() - (model, iter) = selection.get_selected() - - if iter: - self.selected_item = ( - int(selection.get_selected_rows()[1][0][0]), # Position - str(model.get_value(iter, 0)), # Key - str(model.get_value(iter, 1)) # Value - ) + self._itemView.connect("cursor-changed", function) - def get_selection_data(self): + def _on_row_activated(self, treeview, path, view_column, data = None): """ - Gibt die Variable self.selected_item zur�ck. - Diese enth�lt ein Tupel. (, , ) + Setzt den Wert von self._selectedItems. Dieser Wert kann + mit der Methode "get_selection_data" abgerufen werden. """ - return self.selected_item # (, , ) + iter = self._itemlist.get_iter(path) + if not iter: + return + + self._selectedItem = ( + path[0], # Position + self._itemlist.get_value(iter, self.KEY_IDX), # Key + self._itemlist.get_value(iter, self.VALUE_IDX) # Value + ) - def set_eventfunction__cursor_changed(self, function): + def _on_cursor_changed(self, widget, data1 = None, data2 = None): """ - Verbindet die �bergebene Funktion mit dem - Signal "cursor-changed". + Setzt den Wert von self._selectedItems. Dieser Wert kann + mit der Methode "get_selection_data" abgerufen werden. """ - self.tree_view.connect("cursor-changed", function) + selection = widget.get_selection() + (model, iter) = selection.get_selected() + if not iter: + return + + self._selectedItem = ( + int(selection.get_selected_rows()[1][0][0]), # Position + str(model.get_value(iter, self.KEY_IDX)), # Key + str(model.get_value(iter, self.VALUE_IDX)) # Value + ) -- 1.7.9.5