Adding more filtering options
[multilist] / src / libview.py
index 3a0f9c3..7ded416 100644 (file)
@@ -24,9 +24,9 @@ import logging
 
 import gtk
 import gobject
-import pango
 
 import gtk_toolbox
+import libliststorehandler
 
 
 try:
@@ -53,26 +53,29 @@ class TripleToggleCellRenderer(gtk.CellRendererToggle):
                gtk.CellRendererToggle.__init__(self)
                self.set_property("activatable", True)
                self.connect('toggled', self._on_toggled)
-               self.status = -1
+               self.status = libliststorehandler.Liststorehandler.SHOW_NEW
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def do_set_property(self, property, value):
-               if getattr(self, property.name) == value:
+               if getattr(self, property.name) == value or value is None:
                        return
 
                setattr(self, property.name, value)
 
                if property.name == "status":
                        active, inconsistent = {
-                               "-1": (False, True),
-                               "0": (False, False),
-                               "1": (True, False),
+                               libliststorehandler.Liststorehandler.SHOW_NEW: (False, False),
+                               libliststorehandler.Liststorehandler.SHOW_ACTIVE: (False, True),
+                               libliststorehandler.Liststorehandler.SHOW_COMPLETE: (True, False),
                        }[value]
                        self.set_property("active", active)
                        self.set_property("inconsistent", inconsistent)
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def do_get_property(self, property):
                return getattr(self, property.name)
 
+       @gtk_toolbox.log_exception(_moduleLogger)
        def _on_toggled(self, widget, path):
                self.emit("status_changed", int(path), "-1")
 
@@ -98,34 +101,6 @@ class View(gtk.VBox):
                ls = self.liststorehandler.get_liststore()
                self.treeview.set_model(ls)
 
-       def col_edited(self, cell, irow, new_text, icol = None):
-               if (irow != 4):
-                       self.liststorehandler.update_row(irow, icol, new_text)
-               else:
-                       print cell, irow, new_text, icol
-
-       def col_toggled(self, widget, irow, status ):
-               ls = self.treeview.get_model()
-
-               if self.liststorehandler.get_filter() == self.liststorehandler.SHOW_ACTIVE:
-                       if ls[irow][1] == "0":
-                               self.liststorehandler.update_row(irow, 1, "1")
-                       else:
-                               self.liststorehandler.update_row(irow, 1, "0")
-               else:
-                       if ls[irow][1] == "1":
-                               self.liststorehandler.update_row(irow, 1, "-1")
-                       elif ls[irow][1] == "0":
-                               self.liststorehandler.update_row(irow, 1, "1")
-                       else:
-                               self.liststorehandler.update_row(irow, 1, "0")
-
-       def convert(self, s):
-               if s == "1":
-                       return 1
-               else:
-                       return 0
-
        def del_active_row(self):
                path, col = self.treeview.get_cursor()
                if path is not None:
@@ -133,9 +108,6 @@ class View(gtk.VBox):
                        row_iter = self.treeview.get_model().get_iter(path)
                        self.liststorehandler.del_row(irow, row_iter)
 
-       def sort_func_function(self, model, iter1, iter2, data = None):
-               print "sorting"
-
        def reload_view(self):
                # create the TreeView using liststore
                self.modelsort = gtk.TreeModelSort(self.liststorehandler.get_liststore())
@@ -157,10 +129,9 @@ class View(gtk.VBox):
                                default = "0"
                        if self.db.ladeDirekt("showcol_"+str(self.liststorehandler.get_colname(i)), default) == "1":
                                if i in [1]:
-                                       #self.cell[i] = CellRendererTriple()
                                        self.cell[i] = TripleToggleCellRenderer()
                                        self.tvcolumn[i] = gtk.TreeViewColumn("", self.cell[i])
-                                       self.cell[i].connect( 'status_changed', self.col_toggled)
+                                       self.cell[i].connect( 'status_changed', self._on_col_toggled)
                                        self.tvcolumn[i].set_attributes( self.cell[i], status = i)
                                elif i in [3, 6]:
                                        self.cell[i] = gtk.CellRendererCombo()
@@ -168,18 +139,16 @@ class View(gtk.VBox):
                                        self.cell[i].set_property("model", m)
                                        self.cell[i].set_property('text-column', i)
                                        self.cell[i].set_property('editable', True)
-                                       self.cell[i].connect("edited", self.col_edited, i)
+                                       self.cell[i].connect("edited", self._on_col_edited, i)
                                        self.tvcolumn[i].set_attributes( self.cell[i], text = i)
                                else:
                                        self.cell[i] = gtk.CellRendererText()
                                        self.tvcolumn[i] = gtk.TreeViewColumn(self.liststorehandler.get_colname(i), self.cell[i])
                                        self.cell[i].set_property('editable', True)
                                        self.cell[i].set_property('editable-set', True)
-                                       self.cell[i].connect("edited", self.col_edited, i)
-                                       #self.cell[i].connect("editing-canceled", self.col_edited2, i) 
+                                       self.cell[i].connect("edited", self._on_col_edited, i)
                                        self.tvcolumn[i].set_attributes(self.cell[i], text = i)
 
-                               self.cell[i].set_property('cell-background', 'lightgray')
                                self.tvcolumn[i].set_sort_column_id(i)
                                self.tvcolumn[i].set_resizable(True)
                                self.treeview.append_column(self.tvcolumn[i])
@@ -195,3 +164,27 @@ class View(gtk.VBox):
                self.loadList()
 
                self.show_all()
+
+       @gtk_toolbox.log_exception(_moduleLogger)
+       def _on_col_edited(self, cell, irow, new_text, icol = None):
+               if (irow != 4):
+                       self.liststorehandler.update_row(irow, icol, new_text)
+               else:
+                       print cell, irow, new_text, icol
+
+       @gtk_toolbox.log_exception(_moduleLogger)
+       def _on_col_toggled(self, widget, irow, status):
+               ls = self.treeview.get_model()
+
+               if self.liststorehandler.get_filter() == self.liststorehandler.SHOW_ACTIVE:
+                       if ls[irow][1] == "0":
+                               self.liststorehandler.update_row(irow, 1, "1")
+                       else:
+                               self.liststorehandler.update_row(irow, 1, "0")
+               else:
+                       if ls[irow][1] == "1":
+                               self.liststorehandler.update_row(irow, 1, "-1")
+                       elif ls[irow][1] == "0":
+                               self.liststorehandler.update_row(irow, 1, "1")
+                       else:
+                               self.liststorehandler.update_row(irow, 1, "0")