mirror of
https://github.com/aclist/dztui.git
synced 2026-10-31 15:12:48 +01:00
chore: simplify CalcDist
This commit is contained in:
1 parent
52d51f2bd7
commit
cba884da7e
5 files changed
+18
-24
No files matched your search
@@ -484,9 +484,6 @@ class Controller(GObject.GObject):
|
|||||||
def get_statusbar(self) -> "Statusbar":
|
def get_statusbar(self) -> "Statusbar":
|
||||||
return self.mediator.statusbar
|
return self.mediator.statusbar
|
||||||
|
|
||||||
#def get_proxy_man(self) -> "ProxyModelManager":
|
|
||||||
# return self.proxy_man
|
|
||||||
|
|
||||||
def populate_model(self, tv: "ServerTreeView") -> None:
|
def populate_model(self, tv: "ServerTreeView") -> None:
|
||||||
# NOTE: skip on previously loaded tabs
|
# NOTE: skip on previously loaded tabs
|
||||||
if tv.is_loaded():
|
if tv.is_loaded():
|
||||||
@@ -499,14 +496,13 @@ class Controller(GObject.GObject):
|
|||||||
def get_dist_cache(self) -> dict[str, "Haversine"]:
|
def get_dist_cache(self) -> dict[str, "Haversine"]:
|
||||||
return self.dist_cache
|
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:
|
def get_map_store(self) -> Gtk.ListStore:
|
||||||
filter_man = self.get_filter_man()
|
filter_man = self.get_filter_man()
|
||||||
return filter_man.get_map_store()
|
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:
|
def get_enabled_filters(self) -> dict:
|
||||||
filter_man = self.get_filter_man()
|
filter_man = self.get_filter_man()
|
||||||
return filter_man.get_filters()
|
return filter_man.get_filters()
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ class ConfigManager:
|
|||||||
raise e
|
raise e
|
||||||
|
|
||||||
# TODO: strings
|
# TODO: strings
|
||||||
@call_on_thread("checking api")
|
@call_on_thread("Checking api")
|
||||||
def update_api_key(self, key: Preferences, text: str) -> None:
|
def update_api_key(self, key: Preferences, text: str) -> None:
|
||||||
if key is Preferences.STEAM:
|
if key is Preferences.STEAM:
|
||||||
res = test_steam_api(text)
|
res = test_steam_api(text)
|
||||||
|
|||||||
+2
-8
@@ -1,7 +1,7 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from math import radians, cos, sin, asin, sqrt
|
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
|
from dzgui.util.ip import GeolocationError, get_coords
|
||||||
|
|
||||||
@@ -47,6 +47,7 @@ class CalcDist:
|
|||||||
enum: "ServerTab",
|
enum: "ServerTab",
|
||||||
result_queue: "Queue",
|
result_queue: "Queue",
|
||||||
controller: "Controller",
|
controller: "Controller",
|
||||||
|
cache: dict[str, Haversine],
|
||||||
) -> None:
|
) -> None:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
|
|
||||||
@@ -56,17 +57,10 @@ class CalcDist:
|
|||||||
self.addr = addr
|
self.addr = addr
|
||||||
self.ip = self.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)
|
dist = self.compare(self.ip)
|
||||||
self.result_queue.put([self.addr, dist, self.enum])
|
self.result_queue.put([self.addr, dist, self.enum])
|
||||||
|
|
||||||
def compare(self, remote: str) -> int | None:
|
def compare(self, remote: str) -> int | None:
|
||||||
# TODO: cache this
|
|
||||||
prefs = self.controller.get_prefs()
|
prefs = self.controller.get_prefs()
|
||||||
local = prefs.coords
|
local = prefs.coords
|
||||||
if local is None:
|
if local is None:
|
||||||
|
|||||||
@@ -36,8 +36,9 @@ class ButtonGrid(Gtk.Grid):
|
|||||||
# TODO: use enumerated checks
|
# TODO: use enumerated checks
|
||||||
for check in defaults.keys():
|
for check in defaults.keys():
|
||||||
checkbox = Gtk.CheckButton(label=check)
|
checkbox = Gtk.CheckButton(label=check)
|
||||||
label = checkbox.get_children()
|
label = checkbox.get_child()
|
||||||
label[0].set_ellipsize(Pango.EllipsizeMode.END)
|
if label is not None:
|
||||||
|
label.set_ellipsize(Pango.EllipsizeMode.END)
|
||||||
|
|
||||||
if defaults[check]:
|
if defaults[check]:
|
||||||
checkbox.set_active(True)
|
checkbox.set_active(True)
|
||||||
|
|||||||
@@ -205,7 +205,7 @@ class ServerTreeView(ContextMixin, TreeView):
|
|||||||
thread = threading.Thread(
|
thread = threading.Thread(
|
||||||
daemon=True,
|
daemon=True,
|
||||||
target=CalcDist,
|
target=CalcDist,
|
||||||
args=(record.ip, enum, self.queue, self.controller),
|
args=(record.ip, enum, self.queue, self.controller, cache),
|
||||||
)
|
)
|
||||||
thread.start()
|
thread.start()
|
||||||
|
|
||||||
@@ -218,10 +218,9 @@ class ServerTreeView(ContextMixin, TreeView):
|
|||||||
cache = self.controller.get_dist_cache()
|
cache = self.controller.get_dist_cache()
|
||||||
|
|
||||||
if latest_result:
|
if latest_result:
|
||||||
addr = latest_result[0]
|
addr, haversine, tab = latest_result
|
||||||
haversine = latest_result[1]
|
|
||||||
if addr not in cache:
|
if addr not in cache:
|
||||||
cache[addr] = haversine
|
self.controller.set_dist_cache(addr, haversine)
|
||||||
# TODO: should be emitting a statusbar signal here instead?
|
# TODO: should be emitting a statusbar signal here instead?
|
||||||
self.controller.set_statusbar_dist(haversine, self.get_enum())
|
self.controller.set_statusbar_dist(haversine, self.get_enum())
|
||||||
return True
|
return True
|
||||||
@@ -281,7 +280,9 @@ class ServerTreeView(ContextMixin, TreeView):
|
|||||||
record = self.get_record()
|
record = self.get_record()
|
||||||
self.controller.connect_by_record(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:
|
if self.loaded is False:
|
||||||
return
|
return
|
||||||
self.start_distcalc()
|
self.start_distcalc()
|
||||||
@@ -315,7 +316,9 @@ class ServerTreeView(ContextMixin, TreeView):
|
|||||||
self.loaded = status
|
self.loaded = status
|
||||||
|
|
||||||
@staticmethod
|
@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)
|
_ping = ping(ip, qport)
|
||||||
GLib.idle_add(lambda: model.set(_iter, ping_column, _ping))
|
GLib.idle_add(lambda: model.set(_iter, ping_column, _ping))
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user