25 lines
692 B
Python
25 lines
692 B
Python
|
# 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)
|