diff --git a/cartridges/ui/games.py b/cartridges/ui/games.py index f7e2902..e2fba85 100644 --- a/cartridges/ui/games.py +++ b/cartridges/ui/games.py @@ -19,7 +19,24 @@ _SORT_MODES = { "oldest": ("added", False), } -model = Gtk.FlattenListModel.new(sources.model) +filter_ = Gtk.EveryFilter() +filter_.append( + Gtk.BoolFilter( + expression=Gtk.PropertyExpression.new(Game, None, "removed"), + invert=True, + ) +) +filter_.append( + Gtk.BoolFilter( + expression=Gtk.PropertyExpression.new(Game, None, "blacklisted"), + invert=True, + ) +) +model = Gtk.FilterListModel( + model=Gtk.FlattenListModel.new(sources.model), + filter=filter_, + watch_items=True, # pyright: ignore[reportCallIssue] +) class GameSorter(Gtk.Sorter): diff --git a/cartridges/ui/window.blp b/cartridges/ui/window.blp index fec10e6..037aa32 100644 --- a/cartridges/ui/window.blp +++ b/cartridges/ui/window.blp @@ -262,16 +262,6 @@ template $Window: Adw.ApplicationWindow { expression: expr item as <$Game>.hidden; invert: bind template.show-hidden inverted; } - - BoolFilter { - expression: expr item as <$Game>.removed; - invert: true; - } - - BoolFilter { - expression: expr item as <$Game>.blacklisted; - invert: true; - } }; model: bind template.model;