mirror of
https://github.com/aclist/dztui.git
synced 2026-10-30 14:42:54 +01:00
chore: simplify controller logic
This commit is contained in:
1 parent
7a9f0dc096
commit
eb4ee41742
3 files changed
+23
-22
No files matched your search
+4
-22
@@ -25,7 +25,6 @@ from dzgui.managers.notes import NoteManager
|
|||||||
from dzgui.model.servers import ServerModelManager
|
from dzgui.model.servers import ServerModelManager
|
||||||
from dzgui.util.diag import write_diagnostic
|
from dzgui.util.diag import write_diagnostic
|
||||||
from dzgui.util.format import format_player_count
|
from dzgui.util.format import format_player_count
|
||||||
from dzgui.util.localize import number
|
|
||||||
from dzgui.util.open_links import open_user_workshop, open_workshop_page
|
from dzgui.util.open_links import open_user_workshop, open_workshop_page
|
||||||
from dzgui.views.dialogs.filepicker import FilePicker
|
from dzgui.views.dialogs.filepicker import FilePicker
|
||||||
from dzgui.views.dialogs.generic import ExceptionDialog
|
from dzgui.views.dialogs.generic import ExceptionDialog
|
||||||
@@ -150,7 +149,6 @@ class Controller(GObject.GObject):
|
|||||||
def remove_statusbar(self, context: "NotebookPage | ServerTab") -> None:
|
def remove_statusbar(self, context: "NotebookPage | ServerTab") -> None:
|
||||||
self.mediator.statusbar.pop(context)
|
self.mediator.statusbar.pop(context)
|
||||||
|
|
||||||
# TODO: StatusBarManager, move out of here
|
|
||||||
def set_statusbar_dist(self, haversine: "Haversine", enum: "ServerTab") -> None:
|
def set_statusbar_dist(self, haversine: "Haversine", enum: "ServerTab") -> None:
|
||||||
"""
|
"""
|
||||||
NOTE: prevents race condition when server tab changed,
|
NOTE: prevents race condition when server tab changed,
|
||||||
@@ -165,19 +163,7 @@ class Controller(GObject.GObject):
|
|||||||
self.emitter.emit("distcalc_ended", None, context)
|
self.emitter.emit("distcalc_ended", None, context)
|
||||||
return
|
return
|
||||||
|
|
||||||
dist: str
|
dist = haversine.get_rounded(self.prefs.use_miles)
|
||||||
if haversine is None:
|
|
||||||
dist = "Unknown"
|
|
||||||
else:
|
|
||||||
if self.prefs.use_miles:
|
|
||||||
raw = round(haversine.as_miles())
|
|
||||||
separated = number(raw)
|
|
||||||
dist = str(separated) + " mi"
|
|
||||||
else:
|
|
||||||
raw = round(haversine.as_kilometers())
|
|
||||||
separated = number(raw)
|
|
||||||
dist = str(separated) + " km"
|
|
||||||
|
|
||||||
self.emitter.emit("distcalc_ended", dist, context)
|
self.emitter.emit("distcalc_ended", dist, context)
|
||||||
|
|
||||||
def toggle_config(self, key: Preferences) -> None:
|
def toggle_config(self, key: Preferences) -> None:
|
||||||
@@ -301,13 +287,10 @@ class Controller(GObject.GObject):
|
|||||||
treeview.set_loaded(False)
|
treeview.set_loaded(False)
|
||||||
ServerModelManager(self, treeview).refresh()
|
ServerModelManager(self, treeview).refresh()
|
||||||
|
|
||||||
# TODO: move to servermodelman
|
|
||||||
def get_player_count(self) -> str:
|
def get_player_count(self) -> str:
|
||||||
treeview = self.get_active_treeview()
|
treeview = self.get_active_treeview()
|
||||||
model = treeview.get_model()
|
model, control = treeview.get_model_and_control_model()
|
||||||
proxy_man = treeview.get_proxy_man()
|
count = format_player_count(model, control)
|
||||||
control_model = proxy_man.get_control()
|
|
||||||
count = format_player_count(model, control_model)
|
|
||||||
return count
|
return count
|
||||||
|
|
||||||
def get_statusbar(self) -> "Statusbar":
|
def get_statusbar(self) -> "Statusbar":
|
||||||
@@ -318,8 +301,7 @@ class Controller(GObject.GObject):
|
|||||||
if tv.is_loaded():
|
if tv.is_loaded():
|
||||||
self.emitter.emit("servers_loaded", tv.get_enum())
|
self.emitter.emit("servers_loaded", tv.get_enum())
|
||||||
return
|
return
|
||||||
# TODO: placeholder logic, wipe statusbar when changing page
|
self.mediator.statusbar.set_by_context(tv.get_enum(), "")
|
||||||
self.mediator.statusbar.set_text("", "")
|
|
||||||
ServerModelManager(self, tv).load()
|
ServerModelManager(self, tv).load()
|
||||||
|
|
||||||
def get_dist_cache(self) -> dict[str, "Haversine"]:
|
def get_dist_cache(self) -> dict[str, "Haversine"]:
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ from typing import TYPE_CHECKING
|
|||||||
|
|
||||||
from dzgui.const.constants import APP_NAME
|
from dzgui.const.constants import APP_NAME
|
||||||
from dzgui.util.ip import get_coords
|
from dzgui.util.ip import get_coords
|
||||||
|
from dzgui.util.localize import number
|
||||||
|
|
||||||
import gi
|
import gi
|
||||||
|
|
||||||
@@ -40,6 +41,18 @@ class Haversine:
|
|||||||
def as_miles(self) -> float:
|
def as_miles(self) -> float:
|
||||||
return self.dist / 1609.344
|
return self.dist / 1609.344
|
||||||
|
|
||||||
|
def get_rounded(self, use_miles: bool) -> str:
|
||||||
|
if self is None:
|
||||||
|
return "Unknown"
|
||||||
|
if use_miles:
|
||||||
|
raw = round(self.as_miles())
|
||||||
|
separated = number(raw)
|
||||||
|
return str(separated) + " mi"
|
||||||
|
else:
|
||||||
|
raw = round(self.as_kilometers())
|
||||||
|
separated = number(raw)
|
||||||
|
return str(separated) + " km"
|
||||||
|
|
||||||
|
|
||||||
class CalcDist:
|
class CalcDist:
|
||||||
def __init__(
|
def __init__(
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ logger = logging.getLogger(APP_NAME)
|
|||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from dzgui.controllers.mc import Controller
|
from dzgui.controllers.mc import Controller
|
||||||
from dzgui.controllers.emitter import Emitter
|
from dzgui.controllers.emitter import Emitter
|
||||||
|
from dzgui.model.model_factory import FastInsertListStore
|
||||||
|
|
||||||
QUEUE_CHECK_DELAY = 200
|
QUEUE_CHECK_DELAY = 200
|
||||||
|
|
||||||
@@ -316,6 +317,11 @@ class ServerTreeView(ContextMixin, TreeView):
|
|||||||
def set_loaded(self, status: bool) -> None:
|
def set_loaded(self, status: bool) -> None:
|
||||||
self.loaded = status
|
self.loaded = status
|
||||||
|
|
||||||
|
def get_model_and_control_model(self) -> tuple["FastInsertListStore", list[Any]]:
|
||||||
|
model = self.get_model()
|
||||||
|
control = self.proxy_man.get_control()
|
||||||
|
return model, control
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def ping_server(
|
def ping_server(
|
||||||
model, _iter: Gtk.TreeIter, ip: str, qport: int, ping_column: int
|
model, _iter: Gtk.TreeIter, ip: str, qport: int, ping_column: int
|
||||||
|
|||||||
Reference in new issue
Block a user