From 7b8388376c39c2533e1f7002791cc90648cf9a0c Mon Sep 17 00:00:00 2001 From: aclist <92275929+aclist@users.noreply.github.com> Date: Sat, 25 Apr 2026 21:17:47 +0900 Subject: [PATCH] chore: consolidate filter enums --- dzgui/const/enum.py | 8 +++----- dzgui/controllers/mc.py | 2 +- dzgui/managers/config.py | 10 +++++----- dzgui/model/proxy_model.py | 5 ++--- dzgui/model/servers.py | 11 +++-------- dzgui/views/components/filter_panel.py | 2 +- 6 files changed, 15 insertions(+), 23 deletions(-) diff --git a/dzgui/const/enum.py b/dzgui/const/enum.py index 656782e..e1189c6 100644 --- a/dzgui/const/enum.py +++ b/dzgui/const/enum.py @@ -41,11 +41,9 @@ class CursorPosition(Enum): class FilterMode(Enum): - KEYWORD = 1 - MAP = 2 - INITIAL = 3 - TOGGLE_OFF = 4 - TOGGLE_ON = 5 + INITIAL = 1 + TOGGLE_OFF = 2 + TOGGLE_ON = 3 class EnumWithAttrs(Enum): diff --git a/dzgui/controllers/mc.py b/dzgui/controllers/mc.py index f22d1f8..b15b3f9 100644 --- a/dzgui/controllers/mc.py +++ b/dzgui/controllers/mc.py @@ -553,7 +553,7 @@ class Controller(GObject.GObject): def _on_map_selection_changed(self, emitter: Emitter, selection: str) -> None: smm = ServerModelManager(self, self.get_active_treeview()) - smm.refilter(FilterMode.MAP) + smm.refilter(FilterMode.TOGGLE_ON) def get_notebook(self) -> "Notebook": return self.mediator.notebook diff --git a/dzgui/managers/config.py b/dzgui/managers/config.py index 2dfa6d1..98f38df 100644 --- a/dzgui/managers/config.py +++ b/dzgui/managers/config.py @@ -34,8 +34,6 @@ class ConfigManager: self.config = prefs.paths.config def lookup(self, enum: Preferences) -> Any: - # if path.is_file() is False: - # raise ConfigFileError("Not a valid file") key = self.enum_to_key(enum) config = self.get_config() try: @@ -48,9 +46,11 @@ class ConfigManager: ips.append(record) self.update_config(Preferences.IP_LIST, ips) - def remove_history_server(self, record: str) -> None: - print(record) - pass + def update_history_file(self, records: list[Any]) -> None: + with open(self.prefs.paths.history, "w") as f: + for record in records: + addr = f"{record[7]}:{record[8]}" + f.write(f"{addr}\n") def remove_saved_server(self, record: str) -> None: ips = self.lookup(Preferences.IP_LIST) diff --git a/dzgui/model/proxy_model.py b/dzgui/model/proxy_model.py index 4334768..cad4e17 100644 --- a/dzgui/model/proxy_model.py +++ b/dzgui/model/proxy_model.py @@ -11,6 +11,7 @@ from dzgui.util import strings if TYPE_CHECKING: from dzgui.managers.filter_man import FilterManager from dzgui.model.model_factory import FastInsertListStore + from dzgui.api.servers import Record from dzgui.model.servers import NewPlayerCount @@ -68,7 +69,6 @@ class ProxyModelManager: # TODO: consolidate with remove_row_from_control() def remove_from_history(self, record: "Record") -> None: - print(record) addr = f"{record.ip}:{record.gameport}" qport = record.qport for record in self.control_model: @@ -85,7 +85,6 @@ class ProxyModelManager: return self.proxy_model def filter(self, mode: FilterMode, skip_cache: bool = False) -> None: - # TODO: proxy model can fetch args directly from filter man, no need to process extra input """ Native Gtk.TreeView.refilter() method was not performant enough when running in the main loop with 40k+ records @@ -109,7 +108,7 @@ class ProxyModelManager: rows = self.filter_initial(filters) # TODO: consolidate into one enum - case FilterMode.MAP | FilterMode.KEYWORD | FilterMode.TOGGLE_ON: + case FilterMode.TOGGLE_ON: rows = self.filter_toggle_on(filters) case FilterMode.TOGGLE_OFF: diff --git a/dzgui/model/servers.py b/dzgui/model/servers.py index 8be2c2b..1ba50c8 100644 --- a/dzgui/model/servers.py +++ b/dzgui/model/servers.py @@ -213,18 +213,13 @@ class ServerModelManager: def remove_from_history(self, record: Servers.Record) -> None: """Fully unthreaded, just removes a row""" - port = record.ip - gport = record.gameport - qport = record.qport - - fqip = f"{port}:{gport}:{qport}" - config_man = self.controller.get_config_man() - config_man.remove_history_server(fqip) - proxy_man = self._get_proxy_man() proxy_man.remove_from_history(record) control_model = proxy_man.get_control() + config_man = self.controller.get_config_man() + config_man.update_history_file(control_model) + self._sort_unique_maps(control_model) proxy = proxy_man.get_proxy_model() self.tv.set_model(proxy) diff --git a/dzgui/views/components/filter_panel.py b/dzgui/views/components/filter_panel.py index e05e8dd..796de21 100644 --- a/dzgui/views/components/filter_panel.py +++ b/dzgui/views/components/filter_panel.py @@ -130,7 +130,7 @@ class KeywordEntry(Gtk.Entry): ServerModelManager( self.controller, self.controller.get_active_treeview() - ).refilter(FilterMode.KEYWORD) + ).refilter(FilterMode.TOGGLE_ON) class FilterPanel(Gtk.Box):