mirror of
https://github.com/aclist/dztui.git
synced 2026-08-26 09:47:36 +02:00
chore: simplify CalcDist
This commit is contained in:
parent
52d51f2bd7
commit
cba884da7e
@ -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:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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))
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user