From 2b2b71e017cfbe0e67e231f573546e18ed86e485 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Fri, 19 Mar 2010 19:50:36 -0500 Subject: [PATCH] Moving all/active filter to menu --- src/libliststorehandler.py | 32 ++++++++++++++++---- src/libselection.py | 23 ++------------ src/libview.py | 2 +- src/multilist_gtk.py | 71 ++++++++++++++++++++++++++++---------------- support/builddeb.py | 8 +++-- 5 files changed, 80 insertions(+), 56 deletions(-) diff --git a/src/libliststorehandler.py b/src/libliststorehandler.py index eee2b31..d5d2891 100644 --- a/src/libliststorehandler.py +++ b/src/libliststorehandler.py @@ -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 (?, ?, ?, ?, ?)" diff --git a/src/libselection.py b/src/libselection.py index 7b6f48e..c5841a8 100644 --- a/src/libselection.py +++ b/src/libselection.py @@ -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" diff --git a/src/libview.py b/src/libview.py index 53a51fc..cbc46af 100644 --- a/src/libview.py +++ b/src/libview.py @@ -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: diff --git a/src/multilist_gtk.py b/src/multilist_gtk.py index 7c93879..38eb710 100755 --- a/src/multilist_gtk.py +++ b/src/multilist_gtk.py @@ -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) diff --git a/support/builddeb.py b/support/builddeb.py index 699c78d..d0c73ba 100755 --- a/support/builddeb.py +++ b/support/builddeb.py @@ -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. """ -- 1.7.9.5