From 699c1037118c2d428fb25e9628fbecd930cb9c5d Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Sun, 19 Apr 2026 19:31:40 +0900 Subject: [PATCH] feat: add MapsCombo --- dzgui/controllers/mc.py | 1 + dzgui/views/components/filter_panel.py | 8 ++------ dzgui/views/components/maps_combo.py | 11 +++++++++++ dzgui/views/trees/tree_servers.py | 1 - 4 files changed, 14 insertions(+), 7 deletions(-) create mode 100644 dzgui/views/components/maps_combo.py diff --git a/dzgui/controllers/mc.py b/dzgui/controllers/mc.py index 27696a8..65e818a 100644 --- a/dzgui/controllers/mc.py +++ b/dzgui/controllers/mc.py @@ -442,6 +442,7 @@ class Controller(GObject.GObject): self.mediator.modtreeview.set_cursor(0) def get_filter_man(self) -> "FilterManager": + """Each ServerTreeView has an atomic FilterManager""" return self.get_active_treeview().get_filter_man() def highlight_stale_cleanup(self, stale_mods: list) -> None: diff --git a/dzgui/views/components/filter_panel.py b/dzgui/views/components/filter_panel.py index 8dfd412..497237a 100644 --- a/dzgui/views/components/filter_panel.py +++ b/dzgui/views/components/filter_panel.py @@ -5,6 +5,7 @@ from dzgui.const.enum import FilterMode from dzgui.const.constants import EXPAND, NO_EXPAND, NO_FILL, NO_PADDING, SEARCH_ICON from dzgui.model.servers import ServerModelManager from dzgui.util.strings import all_maps +from dzgui.views.components.maps_combo import MapsCombo from dzgui.views.components.labels import BoldLabel import gi @@ -170,10 +171,7 @@ class FilterPanel(Gtk.Box): self.emitter.connect("check_button_pressed", self.toggle_check_by_key) self.emitter.connect("load_maps", self._on_maps_loaded) - # TODO: break into MapsCombo class - completion = Gtk.EntryCompletion(inline_completion=True) - completion.set_text_column(0) - completion.set_minimum_key_length(1) + completion = MapsCombo() completion.connect("match_selected", self._on_completer_match) renderer_text = Gtk.CellRendererText(ellipsize=Pango.EllipsizeMode.END) @@ -256,8 +254,6 @@ class FilterPanel(Gtk.Box): store = self.controller.get_map_store() if len(text) >= completion.get_minimum_key_length(): completion.set_model(store) - # ind = self.get_active_combo() - # self.controller.set_active_map(ind) def restore_focus_to_treeview(self) -> Literal[False]: view = self.controller.get_active_treeview() diff --git a/dzgui/views/components/maps_combo.py b/dzgui/views/components/maps_combo.py new file mode 100644 index 0000000..dfbc948 --- /dev/null +++ b/dzgui/views/components/maps_combo.py @@ -0,0 +1,11 @@ +import gi + +gi.require_version("Gtk", "3.0") +from gi.repository import Gtk, GLib # noqa E402 + + +class MapsCombo(Gtk.EntryCompletion): + def __init__(self): + super().__init__(inline_completion=True) + self.set_text_column(0) + self.set_minimum_key_length(1) diff --git a/dzgui/views/trees/tree_servers.py b/dzgui/views/trees/tree_servers.py index 87b530f..98ad2cd 100644 --- a/dzgui/views/trees/tree_servers.py +++ b/dzgui/views/trees/tree_servers.py @@ -254,7 +254,6 @@ class ServerTreeView(ContextMixin, TreeView): case _: self.emitter.emit("check_button_pressed", event.keyval) - # TODO: unimplemented def is_modded(self) -> bool: select = self.get_selection() sels = select.get_selected_rows()