fix: refresh keywords per page

This commit is contained in:
aclist 2026-04-19 20:22:58 +09:00
parent 699c103711
commit 95948e3e40
2 changed files with 13 additions and 14 deletions

View File

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

View File

@ -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()