X-Git-Url: http://git.maemo.org/git/?p=quicknote;a=blobdiff_plain;f=src%2Fkopfzeile.py;h=9e0626e00687bbdc7272a7ff8a2b60211308d165;hp=7eb7c35240cfefa539e6a5ca054850af204a068f;hb=f65e95591ddf52734af3102f1db52c903b11590a;hpb=e747064bced213416fda192d7bfea5157c931db5;ds=sidebyside diff --git a/src/kopfzeile.py b/src/kopfzeile.py index 7eb7c35..9e0626e 100644 --- a/src/kopfzeile.py +++ b/src/kopfzeile.py @@ -24,12 +24,12 @@ except NameError: _ = lambda x: x -_moduleLogger = logging.getLogger("kopfzeile") +_moduleLogger = logging.getLogger(__name__) class Kopfzeile(gtk.HBox): """ - Category/Search box + Category box """ __gsignals__ = { @@ -46,37 +46,36 @@ class Kopfzeile(gtk.HBox): _moduleLogger.info("libkopfzeile, init") gtk.HBox.__init__(self, homogeneous = False, spacing = 3) - categoryHBox = gtk.HBox() - self.pack_start(categoryHBox, expand = False, fill = True, padding = 0) - self._categories = [self.ALL_CATEGORIES, self.UNDEFINED_CATEGORY] self._categorySelectorButton = gtk.Button(self.UNDEFINED_CATEGORY) self._categorySelectorButton.connect("clicked", self._on_category_selector) - categoryHBox.pack_start(self._categorySelectorButton) + self.pack_start(self._categorySelectorButton, expand = True, fill = True) self.load_categories() - searchHBox = gtk.HBox() - self.pack_start(searchHBox, expand = True, fill = True, padding = 0) - - label = gtk.Label(_("Search: ")) - searchHBox.pack_start(label, expand = False, fill = True, padding = 0) - - self._searchEntry = gtk.Entry() - searchHBox.pack_start(self._searchEntry, expand = True, fill = True, padding = 0) - self._searchEntry.connect("changed", self.search_entry_changed, None) - - def get_category(self): + def get_category_name(self): category = self._categorySelectorButton.get_label() + assert category != "" + return category + + def get_queryable_category(self): + category = self.get_category_name() if category == self.ALL_CATEGORIES: category = "%" - if category == "": - category = self.UNDEFINED_CATEGORY - self._categorySelectorButton.set_label(category) + assert category != "" return category - def _get_category_index(self): - categoryName = self._categorySelectorButton.get_label() + def get_categories(self): + return iter(self._categories) + + def _get_this_category_index(self): + categoryName = self.get_category_name() + try: + return self._categories.index(categoryName) + except ValueError: + return -1 + + def _get_category_index(self, categoryName): try: return self._categories.index(categoryName) except ValueError: @@ -89,47 +88,40 @@ class Kopfzeile(gtk.HBox): window, "Categories", self._categories, - self._categorySelectorButton.get_label(), + self.get_category_name(), ) self.set_category(userSelection) def set_category(self, categoryName = None): - if categoryName is not None and categoryName != self._categorySelectorButton.get_label(): - self._categorySelectorButton.set_label(categoryName) - sql = "UPDATE categories SET liste = ? WHERE id = 1" - self._db.speichereSQL(sql, (self._get_category_index(), )) + if categoryName is not None: + if not categoryName: + categoryName = self.UNDEFINED_CATEGORY + if categoryName != self.get_category_name(): + self.add_category(categoryName) + self._categorySelectorButton.set_label(categoryName) + sql = "UPDATE categories SET liste = ? WHERE id = 1" + self._db.speichereSQL(sql, (self._get_this_category_index(), )) self.emit("category_changed") - def search_entry_changed(self, widget = None, data = None): - _moduleLogger.debug("search_entry_changed") - self.emit("category_changed") - - def define_this_category(self): - category = self.get_category() - catIndex = self._get_category_index() - cats = self._categories[1:] # Skip ALL_CATEGORIES - - if catIndex == -1 and category != "%": - self._categories.append(category) - sql = "INSERT INTO categories (id, liste) VALUES (0, ?)" - self._db.speichereSQL(sql, (category, )) - self._categorySelectorButton.set_label(category) + def add_category(self, categoryName): + if categoryName in self._categories: + return + assert "%" not in categoryName, "Not sure, but maybe %s can't be in names" + self._categories.append(categoryName) + sql = "INSERT INTO categories (id, liste) VALUES (0, ?)" + self._db.speichereSQL(sql, (categoryName, )) def delete_this_category(self): - category = self.get_category() + category = self.get_category_name() + assert category not in (self.ALL_CATEGORIES, self.UNDEFINED_CATEGORY) sql = "UPDATE notes SET category = ? WHERE category = ?" self._db.speichereSQL(sql, (self.UNDEFINED_CATEGORY, category)) sql = "DELETE FROM categories WHERE liste = ?" self._db.speichereSQL(sql, (category, )) - pos = self._get_category_index() - if 1 < pos: - del self._categories[pos] - self._categorySelectorButton.set_label(self.ALL_CATEGORIES) - - def get_search_pattern(self): - return self._searchEntry.get_text() + self._categories.remove(category) + self.set_category(self.ALL_CATEGORIES) def load_categories(self): sql = "CREATE TABLE categories (id TEXT , liste TEXT)" @@ -162,4 +154,4 @@ class Kopfzeile(gtk.HBox): else: self._categorySelectorButton.set_label(self.UNDEFINED_CATEGORY) - self._lastCategory = self._get_category_index() + self._lastCategory = self._get_this_category_index()