From 2f9000ee80ce084515cf5b18ae516dc32f5ec0e7 Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Mon, 19 Jan 2026 17:09:19 +0900 Subject: [PATCH] chore: register filter panel --- dzgui/controllers/mc.py | 25 ++++++++++--------------- dzgui/util/strings.py | 3 ++- dzgui/views/components/filter_panel.py | 1 + dzgui/views/trees/tree_servers.py | 4 ++-- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/dzgui/controllers/mc.py b/dzgui/controllers/mc.py index ad298c2..1bf179e 100644 --- a/dzgui/controllers/mc.py +++ b/dzgui/controllers/mc.py @@ -61,14 +61,15 @@ if TYPE_CHECKING: from dzgui.util.dist import Haversine from dzgui.views.base import Notebook, Grid, OuterWindow from dzgui.views.components.buttonbox import ContextualButton - from dzgui.views.components.statusbar import Statusbar + from dzgui.views.components.filter_panel import FilterPanel from dzgui.views.components.right_panel import RightPanel + from dzgui.views.components.statusbar import Statusbar from dzgui.views.pages.servers import ServerNotebook from dzgui.views.trees.tree_base import TreeView + from dzgui.views.trees.tree_log import LogTreeView from dzgui.views.trees.tree_menu import MenuTreeView from dzgui.views.trees.tree_mods import ModTreeView from dzgui.views.trees.tree_servers import ServerTreeView - from dzgui.views.trees.tree_log import LogTreeView class AppNavigation: window: "OuterWindow" @@ -84,6 +85,7 @@ class AppNavigation: recent: "ServerTreeView" lan: "ServerTreeView" logtreeview: "LogTreeView" + filters: "FilterPanel" class Controller: def __init__(self) -> None: @@ -152,8 +154,8 @@ class Controller: def block_signals(self, state: bool = True) -> None: self.suppress_signal( - self.mediator.grid.right_panel.filters_vbox, - self.mediator.grid.right_panel.filters_vbox.maps_combo, + self.mediator.filters, + self.mediator.filters.maps_combo, "_on_map_changed", state, ) @@ -164,9 +166,9 @@ class Controller: state, ) self.suppress_signal(self.mediator.menu, self.mediator.menu, "_on_keypress", state) - for check in self.mediator.grid.right_panel.filters_vbox.checks: + for check in self.mediator.filters.checks: self.suppress_signal( - self.mediator.grid.right_panel.filters_vbox, + self.mediator.filters, check, "_on_check_toggled", state, @@ -315,6 +317,7 @@ class Controller: self.mediator.statusbar.refresh(row) def toggle_server_panels(self, state: bool) -> None: + # TODO: this is going to be signal dependent now self.mediator.grid.toggle_filter_panel(state) self.mediator.grid.toggle_connect_panel(state) self.mediator.grid.toggle_refresh_button(state) @@ -551,14 +554,6 @@ class Controller: ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], - ["BAR", "a", "a", "a", 1, 1, 1, "185.207.214.16:2302", 0, 0, "a", False], ) # TODO: refer to prior implementation--should need to load data into model while in thread self.get_func_data() @@ -745,7 +740,7 @@ class Controller: return False index = mappings[event.keyval] # TODO: register filter panel widget - self.mediator.grid.right_panel.filters_vbox.toggle_check(index) + self.mediator.filters.toggle_check(index) def get_favorite(self) -> tuple[str, str] | tuple[None, None]: fav = str(self.query_config(Preferences.FAV_LBL)) diff --git a/dzgui/util/strings.py b/dzgui/util/strings.py index 709d816..31c0365 100644 --- a/dzgui/util/strings.py +++ b/dzgui/util/strings.py @@ -164,7 +164,8 @@ ping_tooltip = ( "Available once per unique filter context" ) -statusbar_helptext = "Select a row to see its detailed description" +# statusbar_helptext = "Select a row to see its detailed description" +statusbar_helptext = "No server metadata to list." # use e.g. filters.1pp filter_1pp = "1PP" diff --git a/dzgui/views/components/filter_panel.py b/dzgui/views/components/filter_panel.py index 974e273..60b381a 100644 --- a/dzgui/views/components/filter_panel.py +++ b/dzgui/views/components/filter_panel.py @@ -33,6 +33,7 @@ class FilterPanel(Gtk.Box): } self.controller = controller + self.controller.register_widget("filters", self) map_store = self.controller.get_map_store() diff --git a/dzgui/views/trees/tree_servers.py b/dzgui/views/trees/tree_servers.py index 16d499a..ab54f7b 100644 --- a/dzgui/views/trees/tree_servers.py +++ b/dzgui/views/trees/tree_servers.py @@ -257,9 +257,9 @@ class ServerTreeView(TreeView): self.refresh_player_count() case Gdk.KEY_f: # TODO: register filter panel instead of mediating thru right panel - self.controller.mediator.grid.right_panel.filters_vbox.keyword_entry.grab_focus() + self.controller.mediator.filters.keyword_entry.grab_focus() case Gdk.KEY_m: - self.controller.mediator.grid.right_panel.filters_vbox.maps_entry.grab_focus() + self.controller.mediator.filters.maps_entry.grab_focus() case Gdk.KEY_i: # TODO: self.controller.mediator.grid.conpan.add_panel.entry.grab_focus()