Moving all/active filter to menu
authorEd Page <eopage@byu.net>
Sat, 20 Mar 2010 00:50:36 +0000 (19:50 -0500)
committerEd Page <eopage@byu.net>
Sat, 20 Mar 2010 00:50:36 +0000 (19:50 -0500)
src/libliststorehandler.py
src/libselection.py
src/libview.py
src/multilist_gtk.py
support/builddeb.py

index eee2b31..d5d2891 100644 (file)
@@ -37,8 +37,13 @@ _moduleLogger = logging.getLogger(__name__)
 
 class Liststorehandler(object):
 
+       SHOW_ALL = "all"
+       SHOW_ACTIVE = "active"
+       ALL_FILTERS = (SHOW_ALL, SHOW_ACTIVE)
+
        def __init__(self, db, selection):
                self.db = db
+               self.__filter = self.SHOW_ALL
                self.liststore = None
                self.unitsstore = None
                self.selection = selection
@@ -64,6 +69,14 @@ class Liststorehandler(object):
                print "inserted"
                """
 
+       def set_filter(self, filter):
+               assert filter in self.ALL_FILTERS
+               self.__filter = filter
+               self.update_list()
+
+       def get_filter(self):
+               return self.__filter
+
        def get_unitsstore(self):
                if (self.unitsstore == None):
                        self.unitsstore = gtk.ListStore(str, str, str, str, str,  str, str, str, str, str, str, str, str)
@@ -85,6 +98,13 @@ class Liststorehandler(object):
 
                return self.unitsstore
 
+       def __calculate_status(self):
+               if self.__filter == self.SHOW_ACTIVE:
+                       status = "0"
+               else:
+                       status = "-1"
+               return status
+
        def get_liststore(self, titlesearch = ""):
                if (self.liststore == None):
                        self.liststore = gtk.ListStore(str, str, str, str, str,  str, str, str, str, str, str, str, str)
@@ -92,15 +112,15 @@ class Liststorehandler(object):
 
                titlesearch = titlesearch+"%"
 
-               if (self.selection.get_status() == "0"): #only 0 and 1 (active items)
-                       sql = "SELECT uid, status, title, quantitiy, unit, price, priority, date, private, stores, note, custom1, custom2 FROM items WHERE list = ? AND category LIKE ? AND status> = ? AND title like ? ORDER BY category, status, title"
-                       rows = self.db.ladeSQL(sql, (self.selection.get_list(), self.selection.get_category(True), self.selection.get_status(), titlesearch))
+               if self.__filter == self.SHOW_ACTIVE:
+                       status = self.__calculate_status()
+                       sql = "SELECT uid, status, title, quantitiy, unit, price, priority, date, private, stores, note, custom1, custom2 FROM items WHERE list = ? AND category LIKE ? AND status = ? AND title like ? ORDER BY category, status, title"
+                       rows = self.db.ladeSQL(sql, (self.selection.get_list(), self.selection.get_category(True), status, titlesearch))
                else:
                        sql = "SELECT uid, status, title, quantitiy, unit, price, priority, date, private, stores, note, custom1, custom2 FROM items WHERE list = ? AND category LIKE ? AND title LIKE ? ORDER BY category, title ASC"
                        rows = self.db.ladeSQL(sql, (self.selection.get_list(), self.selection.get_category(True), titlesearch))
 
-               #print rows
-               if ((rows is not None) and (len(rows) > 0)):
+               if rows is not None:
                        for row in rows:
                                uid, status, title, quantitiy, unit, price, priority, date, private, stores, note, custom1, custom2 = row
                                if unit == None:
@@ -154,7 +174,7 @@ class Liststorehandler(object):
                #self.update_row(-1, 1, "-1")
                #for x in self.liststore:
                #       print x[0], x[2]
-               status = self.selection.get_status()
+               status = self.__calculate_status()
                import uuid
                uid = str(uuid.uuid4())
                sql = "INSERT INTO items (uid, list, category, status, title) VALUES (?, ?, ?, ?, ?)"
index 7b6f48e..c5841a8 100644 (file)
@@ -69,15 +69,6 @@ class Selection(gtk.HBox):
                self.comboList.connect("changed", self.comboList_changed, None)
                self.comboCategory.connect("changed", self.comboCategory_changed, None)
 
-               label = gtk.Label(_("  View:"))
-               self.pack_start(label, expand = False, fill = True, padding = 0)
-
-               self.radio_all = gtk.RadioButton(group = None, label = _("All"), use_underline = True)
-               self.pack_start(self.radio_all, expand = False, fill = True, padding = 0)
-               self.radio_active = gtk.RadioButton(group = self.radio_all, label = _("Active"), use_underline = True)
-               self.pack_start(self.radio_active, expand = False, fill = True, padding = 0)
-               self.radio_all.connect("toggled", self.radioActive_changed, None)
-
        def load(self):
                model = self.comboList.get_model()
                model.clear()
@@ -130,10 +121,6 @@ class Selection(gtk.HBox):
                if self.comboCategory.get_active()>-1:
                        self.db.speichereDirekt("comboCategoryText"+self.comboList.get_child().get_text(), self.comboCategory.get_child().get_text())
 
-       @gtk_toolbox.log_exception(_moduleLogger)
-       def radioActive_changed(self, widget, data = None):
-               self.emit("changed", "radio", "")
-
        def comboLists_check_for_update(self):
                if self.comboCategory.get_active() == -1:
                        model = self.comboCategory.get_model()
@@ -168,12 +155,13 @@ class Selection(gtk.HBox):
        def get_category(self, select = False):
                s = self.comboCategory.get_child().get_text()
                if s == _("all"):
-                       if (select == False):
+                       if not select:
                                return "undefined"
                        else:
                                return "%"
                else:
                        return s
+
        def set_category(self, category):
                self.comboCategory.get_child().set_text(category)
 
@@ -182,10 +170,3 @@ class Selection(gtk.HBox):
 
        def get_list(self):
                return self.comboList.get_child().get_text()
-
-       def get_status(self):
-               #return self.comboCategory.get_child().get_text()
-               if self.radio_all.get_active() == True:
-                       return "-1"
-               else:
-                       return "0"
index 53a51fc..cbc46af 100644 (file)
@@ -431,7 +431,7 @@ class View(gtk.VBox):
                #print irow, ls[irow][1], status
                ls = self.treeview.get_model()
 
-               if self.liststorehandler.selection.get_status() == "0":
+               if self.liststorehandler.get_filter() == self.liststorehandler.SHOW_ACTIVE:
                        if ls[irow][1] == "0":
                                self.liststorehandler.update_row(irow, 1, "1")
                        else:
index 7c93879..38eb710 100755 (executable)
@@ -89,67 +89,77 @@ class Multilist(hildonize.get_app_class()):
 
                #Menue
                if hildonize.GTK_MENU_USED:
-                       dateimenu = gtk.Menu()
+                       fileMenu = gtk.Menu()
 
                        menu_items = gtk.MenuItem(_("Choose database file"))
-                       dateimenu.append(menu_items)
                        menu_items.connect("activate", self.select_db_dialog, None)
+                       fileMenu.append(menu_items)
 
                        menu_items = gtk.MenuItem(_("SQL history"))
-                       dateimenu.append(menu_items)
                        menu_items.connect("activate", self.view_sql_history, None)
+                       fileMenu.append(menu_items)
 
                        menu_items = gtk.MenuItem(_("SQL optimize"))
-                       dateimenu.append(menu_items)
                        menu_items.connect("activate", self.optimizeSQL, None)
+                       fileMenu.append(menu_items)
 
                        menu_items = gtk.MenuItem(_("Sync items"))
-                       dateimenu.append(menu_items)
                        menu_items.connect("activate", self.sync_notes, None)
+                       fileMenu.append(menu_items)
 
                        menu_items = gtk.MenuItem(_("Quit"))
-                       dateimenu.append(menu_items)
                        menu_items.connect("activate", self.destroy, None)
-                       #menu_items.show()
+                       fileMenu.append(menu_items)
 
-                       datei_menu = gtk.MenuItem(_("File"))
-                       datei_menu.show()
-                       datei_menu.set_submenu(dateimenu)
+                       fileMenuItem = gtk.MenuItem(_("File"))
+                       fileMenuItem.show()
+                       fileMenuItem.set_submenu(fileMenu)
 
-                       toolsmenu = gtk.Menu()
+                       viewMenu = gtk.Menu()
+
+                       menu_items = gtk.MenuItem(_("Show Active"))
+                       menu_items.connect("activate", self._on_toggle_filter, None)
+                       viewMenu.append(menu_items)
+
+                       viewMenuItem = gtk.MenuItem(_("View"))
+                       viewMenuItem.show()
+                       viewMenuItem.set_submenu(viewMenu)
+
+                       toolsMenu = gtk.Menu()
 
                        menu_items = gtk.MenuItem(_("Choose columns"))
-                       toolsmenu.append(menu_items)
                        menu_items.connect("activate", self.show_columns_dialog, None)
+                       toolsMenu.append(menu_items)
 
                        menu_items = gtk.MenuItem(_("Rename Category"))
-                       toolsmenu.append(menu_items)
                        menu_items.connect("activate", self.bottombar.rename_category, None)
+                       toolsMenu.append(menu_items)
 
                        menu_items = gtk.MenuItem(_("Rename List"))
-                       toolsmenu.append(menu_items)
                        menu_items.connect("activate", self.bottombar.rename_list, None)
+                       toolsMenu.append(menu_items)
 
-                       tools_menu = gtk.MenuItem(_("Tools"))
-                       tools_menu.show()
-                       tools_menu.set_submenu(toolsmenu)
+                       toolsMenuItem = gtk.MenuItem(_("Tools"))
+                       toolsMenuItem.show()
+                       toolsMenuItem.set_submenu(toolsMenu)
 
-                       hilfemenu = gtk.Menu()
+                       helpMenu = gtk.Menu()
                        menu_items = gtk.MenuItem(_("About"))
-                       hilfemenu.append(menu_items)
+                       helpMenu.append(menu_items)
                        menu_items.connect("activate", self.show_about, None)
 
-                       hilfe_menu = gtk.MenuItem(_("Help"))
-                       hilfe_menu.show()
-                       hilfe_menu.set_submenu(hilfemenu)
+                       helpMenuItem = gtk.MenuItem(_("Help"))
+                       helpMenuItem.show()
+                       helpMenuItem.set_submenu(helpMenu)
 
                        menu_bar = gtk.MenuBar()
                        menu_bar.show()
-                       menu_bar.append (datei_menu)
-                       menu_bar.append (tools_menu)
-                       # unten -> damit als letztes menu_bar.append (hilfe_menu)
+                       menu_bar.append (fileMenuItem)
+                       menu_bar.append (toolsMenuItem)
+                       menu_bar.append (viewMenuItem)
+                       # unten -> damit als letztes menu_bar.append (helpMenuItem)
                        #Als letztes menĂ¼
-                       menu_bar.append (hilfe_menu)
+                       menu_bar.append (helpMenuItem)
 
                        self.vbox.pack_start(menu_bar, False, False, 0)
                else:
@@ -197,6 +207,15 @@ class Multilist(hildonize.get_app_class()):
                self.ladeAlles()
 
        @gtk_toolbox.log_exception(_moduleLogger)
+       def _on_toggle_filter(self, *args):
+               if self.liststorehandler.get_filter() == self.liststorehandler.SHOW_ALL:
+                       self.liststorehandler.set_filter(self.liststorehandler.SHOW_ACTIVE)
+               elif self.liststorehandler.get_filter() == self.liststorehandler.SHOW_ACTIVE:
+                       self.liststorehandler.set_filter(self.liststorehandler.SHOW_ALL)
+               else:
+                       assert False, "Unknown"
+
+       @gtk_toolbox.log_exception(_moduleLogger)
        def on_key_press(self, widget, event, *args):
                RETURN_TYPES = (gtk.keysyms.Return, gtk.keysyms.ISO_Enter, gtk.keysyms.KP_Enter)
                isCtrl = bool(event.get_state() & gtk.gdk.CONTROL_MASK)
index 699c78d..d0c73ba 100755 (executable)
@@ -21,11 +21,15 @@ __email__ = "n800@axique.net"
 __version__ = constants.__version__
 __build__ = constants.__build__
 __changelog__ = """
+0.3.2
+* Cleaned up some code
+* Moved Active/All filter to menu
+
 0.3.1
-  * I18N, extract de.po, add ru.po.
+* I18N, extract de.po, add ru.po.
 
 0.3.0
-  * Initial Release.
+* Initial Release.
 """