# Copyright 2021 (c) Anna Schumaker. from gi.repository import Gtk import re class Filter(Gtk.CustomFilter): def __init__(self): Gtk.CustomFilter.__init__(self) self.text = None self.pattern = re.compile("") self.set_filter_func(self.filter_func) def filter_func(self, track): for field in [ "artist", "album", "title" ]: if self.pattern.search(track[field]) != None: return True return False def set_search_text(self, text): change = Gtk.FilterChange.DIFFERENT if self.text == None or self.text in text: Gtk.FilterChange.MORE_STRICT elif text in self.text: Gtk.FilterChange.LESS_STRICT self.pattern = re.compile(text, re.I) self.text = text self.changed(change)