def __init__(self, dbstate, uistate, clicked): self.clicked_func = clicked self.filter_src_id = BasicEntry() self.filter_src_title = BasicEntry() self.filter_src_author = BasicEntry() self.filter_src_abbr = BasicEntry() self.filter_src_pub = BasicEntry() self.filter_src_note = BasicEntry() self.filter_id = Gtk.Entry() self.filter_page = Gtk.Entry() self.filter_date = DateEntry(uistate, []) self.filter_conf = Gtk.ComboBox() model = Gtk.ListStore(str) for conf_value in sorted(conf_strings.keys()): model.append((_(conf_strings[conf_value]), )) self.filter_conf.set_model(model) self.filter_conf.set_active(Citation.CONF_NORMAL) self.filter_note = Gtk.Entry() self.filter_regex = Gtk.CheckButton(label=_('Use regular expressions')) self.tag = Gtk.ComboBox() self.generic = Gtk.ComboBox() SidebarFilter.__init__(self, dbstate, uistate, "Citation")
def __init__(self, dbstate, uistate, clicked): self.clicked_func = clicked self.filter_src_id = BasicEntry() self.filter_src_title = BasicEntry() self.filter_src_author = BasicEntry() self.filter_src_abbr = BasicEntry() self.filter_src_pub = BasicEntry() self.filter_src_note = BasicEntry() self.filter_id = Gtk.Entry() self.filter_page = Gtk.Entry() self.filter_date = DateEntry(uistate, []) self.filter_conf = Gtk.ComboBox() model = Gtk.ListStore(str) for conf_value in sorted(conf_strings.keys()): model.append((_(conf_strings[conf_value]),)) self.filter_conf.set_model(model) self.filter_conf.set_active(Citation.CONF_NORMAL) self.filter_note = Gtk.Entry() self.filter_regex = Gtk.CheckButton(label=_('Use regular expressions')) self.tag = Gtk.ComboBox() self.generic = Gtk.ComboBox() SidebarFilter.__init__(self, dbstate, uistate, "Citation")
def get_filter(self): src_id = str(self.filter_src_id.get_text()).strip() src_title = str(self.filter_src_title.get_text()).strip() src_author = str(self.filter_src_author.get_text()).strip() src_abbr = str(self.filter_src_abbr.get_text()).strip() src_pub = str(self.filter_src_pub.get_text()).strip() src_note = str(self.filter_src_note.get_text()).strip() gid = str(self.filter_id.get_text()).strip() page = str(self.filter_page.get_text()).strip() date = str(self.filter_date.get_text()).strip() model = self.filter_conf.get_model() node = self.filter_conf.get_active_iter() conf_name = model.get_value(node, 0) # The value is actually the text conf = Citation.CONF_NORMAL for i in list(conf_strings.keys()): if _(conf_strings[i]) == conf_name: conf = i break # conf = self.citn.get_confidence_level() note = str(self.filter_note.get_text()).strip() regex = self.filter_regex.get_active() tag = self.tag.get_active() > 0 gen = self.generic.get_active() > 0 empty = not (src_id or src_title or src_author or src_abbr or src_pub or src_note or gid or page or date or conf or note or regex or gen) if empty: generic_filter = None else: generic_filter = GenericCitationFilter() if gid: rule = RegExpIdOf([gid], use_regex=regex) generic_filter.add_rule(rule) rule = HasCitation([page, date, conf], use_regex=regex) generic_filter.add_rule(rule) if src_id: rule = RegExpSourceIdOf([src_id], use_regex=regex) generic_filter.add_rule(rule) rule = HasSource([src_title, src_author, src_abbr, src_pub], use_regex=regex) generic_filter.add_rule(rule) if note: rule = HasNoteRegexp([note], use_regex=regex) generic_filter.add_rule(rule) if src_note: rule = HasSourceNoteRegexp([src_note], use_regex=regex) generic_filter.add_rule(rule) # check the Tag if tag: model = self.tag.get_model() node = self.tag.get_active_iter() attr = model.get_value(node, 0) rule = HasTag([attr]) generic_filter.add_rule(rule) if self.generic.get_active() != 0: model = self.generic.get_model() node = self.generic.get_active_iter() obj = str(model.get_value(node, 0)) rule = MatchesFilter([obj]) generic_filter.add_rule(rule) return generic_filter