emmental/lib/filter.py

25 lines
692 B
Python
Raw Normal View History

# Copyright 2021 (c) Anna Schumaker.
import re
from gi.repository import Gtk
class Regex(Gtk.Filter):
def __init__(self):
Gtk.Filter.__init__(self)
self.pattern = re.compile("")
def do_match(self, item):
raise NotImplementedError
def search(self, text):
return self.pattern.search(text) != None
def set_pattern(self, pattern):
change = Gtk.FilterChange.DIFFERENT
if pattern in self.pattern.pattern:
change = Gtk.FilterChange.LESS_STRICT
elif self.pattern.pattern in pattern:
change = Gtk.FilterChange.MORE_STRICT
self.pattern = re.compile(pattern, re.I)
self.changed(change)