From 95948e3e40b303b9e754a172bf39a40438a4c941 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Sun, 19 Apr 2026 20:22:58 +0900 Subject: [PATCH] fix: refresh keywords per page --- dzgui/controllers/mc.py | 10 +++++----- dzgui/views/components/filter_panel.py | 17 ++++++++--------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/dzgui/controllers/mc.py b/dzgui/controllers/mc.py index 65e818a..47a0d0e 100644 --- a/dzgui/controllers/mc.py +++ b/dzgui/controllers/mc.py @@ -205,9 +205,6 @@ class Controller(GObject.GObject): def get_active_context(self) -> Gtk.TreeView: return self.get_active_treeview().get_enum() - def get_active_filterman(self) -> "FilterManager": - return self.get_active_treeview().get_filter_man() - def get_active_treeview(self) -> "ServerTreeView": return self.mediator.notebook.servers.get_active_treeview() @@ -665,5 +662,8 @@ class Controller(GObject.GObject): model, treeiter = treeview.get_selection().get_selected() ServerModelManager(self, treeview).update_playercount(treeiter, record) - def get_window(self) -> "OuterWindow": - return self.mediator.window + def get_active_keyword(self) -> str: + return self.get_filter_man().get_active_keyword() + + def set_active_keyword(self, keyword: str) -> None: + self.get_filter_man().set_active_keyword(keyword) diff --git a/dzgui/views/components/filter_panel.py b/dzgui/views/components/filter_panel.py index 497237a..e05e8dd 100644 --- a/dzgui/views/components/filter_panel.py +++ b/dzgui/views/components/filter_panel.py @@ -94,6 +94,13 @@ class KeywordEntry(Gtk.Entry): self.set_icon_from_icon_name(Gtk.EntryIconPosition.SECONDARY, SEARCH_ICON) self.set_icon_activatable(Gtk.EntryIconPosition.SECONDARY, True) + self.emitter.connect("load_maps", self._on_maps_loaded) + + def _on_maps_loaded(self, emitter: "Emitter", store: Gtk.ListStore) -> None: + kw = self.controller.get_active_keyword() + self.keyword = kw + self.set_text(kw) + def _on_keypress(self, entry: Gtk.Entry, event: Gdk.EventKey) -> bool: match event.keyval: case Gdk.KEY_Up: @@ -111,9 +118,6 @@ class KeywordEntry(Gtk.Entry): return False def _on_activated(self, entry: Gtk.Entry) -> None: - # TODO: investigate this method - # self.controller.mediator.window.set_keep_below(False) - keyword = entry.get_text().lower() if keyword == self.keyword: return @@ -121,11 +125,7 @@ class KeywordEntry(Gtk.Entry): return self.keyword = keyword - # TODO: delegate to controller - tv = self.controller.get_active_treeview() - filter_man = tv.get_filter_man() - filter_man.set_active_keyword(keyword) - + self.controller.set_active_keyword(keyword) logger.info(f"User filtered by keyword '{keyword}'") ServerModelManager( @@ -208,7 +208,6 @@ class FilterPanel(Gtk.Box): if text == row[0]: self.maps_combo.set_active(i) - # TODO: use same sort of signal to reinitialize keyword and checks def _on_maps_loaded(self, emitter: "Emitter", store: Gtk.ListStore) -> None: self.maps_combo.set_model(store) tv = self.controller.get_active_treeview()