diff --git a/dzgui/controllers/mc.py b/dzgui/controllers/mc.py index 52ebc5a..a7ef16b 100644 --- a/dzgui/controllers/mc.py +++ b/dzgui/controllers/mc.py @@ -484,9 +484,6 @@ class Controller(GObject.GObject): def get_statusbar(self) -> "Statusbar": return self.mediator.statusbar - #def get_proxy_man(self) -> "ProxyModelManager": - # return self.proxy_man - def populate_model(self, tv: "ServerTreeView") -> None: # NOTE: skip on previously loaded tabs if tv.is_loaded(): @@ -499,14 +496,13 @@ class Controller(GObject.GObject): def get_dist_cache(self) -> dict[str, "Haversine"]: return self.dist_cache + def set_dist_cache(self, addr: str, haversine: "Haversine") -> None: + self.dist_cache[addr] = haversine + def get_map_store(self) -> Gtk.ListStore: filter_man = self.get_filter_man() return filter_man.get_map_store() - #def get_selected_map(self) -> str: - # filter_man = self.get_filter_man() - # return filter_man.get_selected_map() - def get_enabled_filters(self) -> dict: filter_man = self.get_filter_man() return filter_man.get_filters() @@ -566,7 +562,7 @@ class Controller(GObject.GObject): return False return True - #def is_in_favs(self) -> bool: + # def is_in_favs(self) -> bool: # return self.config_man.is_in_favs() def get_config_man(self) -> ConfigManager: diff --git a/dzgui/managers/config.py b/dzgui/managers/config.py index 7c39d2b..a03a557 100644 --- a/dzgui/managers/config.py +++ b/dzgui/managers/config.py @@ -79,7 +79,7 @@ class ConfigManager: raise e # TODO: strings - @call_on_thread("checking api") + @call_on_thread("Checking api") def update_api_key(self, key: Preferences, text: str) -> None: if key is Preferences.STEAM: res = test_steam_api(text) diff --git a/dzgui/util/dist.py b/dzgui/util/dist.py index 1cd61a5..c2fb873 100644 --- a/dzgui/util/dist.py +++ b/dzgui/util/dist.py @@ -1,7 +1,7 @@ import logging from math import radians, cos, sin, asin, sqrt -from typing import TYPE_CHECKING +from typing import Self, TYPE_CHECKING from dzgui.util.ip import GeolocationError, get_coords @@ -47,6 +47,7 @@ class CalcDist: enum: "ServerTab", result_queue: "Queue", controller: "Controller", + cache: dict[str, Haversine], ) -> None: super().__init__() @@ -56,17 +57,10 @@ class CalcDist: self.addr = addr self.ip = self.addr - cache = self.controller.get_dist_cache() - if self.addr in cache: - logger.info(f"Address '{self.addr}' already in cache") - self.result_queue.put([self.addr, cache[self.addr], self.enum]) - return - dist = self.compare(self.ip) self.result_queue.put([self.addr, dist, self.enum]) def compare(self, remote: str) -> int | None: - # TODO: cache this prefs = self.controller.get_prefs() local = prefs.coords if local is None: diff --git a/dzgui/views/components/filter_panel.py b/dzgui/views/components/filter_panel.py index 796de21..bd3eb88 100644 --- a/dzgui/views/components/filter_panel.py +++ b/dzgui/views/components/filter_panel.py @@ -36,8 +36,9 @@ class ButtonGrid(Gtk.Grid): # TODO: use enumerated checks for check in defaults.keys(): checkbox = Gtk.CheckButton(label=check) - label = checkbox.get_children() - label[0].set_ellipsize(Pango.EllipsizeMode.END) + label = checkbox.get_child() + if label is not None: + label.set_ellipsize(Pango.EllipsizeMode.END) if defaults[check]: checkbox.set_active(True) diff --git a/dzgui/views/trees/tree_servers.py b/dzgui/views/trees/tree_servers.py index 6b96586..148f057 100644 --- a/dzgui/views/trees/tree_servers.py +++ b/dzgui/views/trees/tree_servers.py @@ -205,7 +205,7 @@ class ServerTreeView(ContextMixin, TreeView): thread = threading.Thread( daemon=True, target=CalcDist, - args=(record.ip, enum, self.queue, self.controller), + args=(record.ip, enum, self.queue, self.controller, cache), ) thread.start() @@ -218,10 +218,9 @@ class ServerTreeView(ContextMixin, TreeView): cache = self.controller.get_dist_cache() if latest_result: - addr = latest_result[0] - haversine = latest_result[1] + addr, haversine, tab = latest_result if addr not in cache: - cache[addr] = haversine + self.controller.set_dist_cache(addr, haversine) # TODO: should be emitting a statusbar signal here instead? self.controller.set_statusbar_dist(haversine, self.get_enum()) return True @@ -281,7 +280,9 @@ class ServerTreeView(ContextMixin, TreeView): record = self.get_record() self.controller.connect_by_record(record) - def _parent_selection_changed(self, base_class: TreeView, sel: Gtk.TreeSelection) -> None: + def _parent_selection_changed( + self, base_class: TreeView, sel: Gtk.TreeSelection + ) -> None: if self.loaded is False: return self.start_distcalc() @@ -315,7 +316,9 @@ class ServerTreeView(ContextMixin, TreeView): self.loaded = status @staticmethod - def ping_server(model, _iter: Gtk.TreeIter, ip: str, qport: int, ping_column: int) -> None: + def ping_server( + model, _iter: Gtk.TreeIter, ip: str, qport: int, ping_column: int + ) -> None: _ping = ping(ip, qport) GLib.idle_add(lambda: model.set(_iter, ping_column, _ping))