chore: register filter panel

This commit is contained in:
aclist 2026-01-19 17:09:19 +09:00
parent 83d78e74de
commit 2f9000ee80
4 changed files with 15 additions and 18 deletions

View File

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

View File

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

View File

@ -33,6 +33,7 @@ class FilterPanel(Gtk.Box):
}
self.controller = controller
self.controller.register_widget("filters", self)
map_store = self.controller.get_map_store()

View File

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