emmental/playlist/filter.py

29 lines
828 B
Python

# 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)