fix: statusbar signals

This commit is contained in:
aclist committed 2026-02-07 23:18:25 +09:00
1 parent fc294bcede
commit 2ef62416c0
7 files changed
+108 -63

No files matched your search

+10
View File
@@ -1,5 +1,6 @@
from typing import Optional, TYPE_CHECKING
from dzgui.const.enum import ServerTab
from dzgui.views.components.buttonbox import ButtonBox
from dzgui.views.components.filter_panel import FilterPanel
from dzgui.views.components.mod_panel import ModSelectionPanel
@@ -30,6 +31,7 @@ class RightPanel(Gtk.Box):
self.filters_vbox = FilterPanel(controller)
self.sel_panel = ModSelectionPanel(controller)
emitter.connect("servers_loaded", self.toggle_refresh_button)
self.refresh_button = RefreshButton(controller)
self.keys = KeysButton(controller)
@@ -38,6 +40,14 @@ class RightPanel(Gtk.Box):
self.pack_start(self.sel_panel, NO_EXPAND, NO_FILL, NO_PADDING)
def toggle_refresh_button(self, emitter: "Emitter", context: "ServerTab") -> None:
# TODO: when a row is added, make sure "servers_loaded" signal is emitted
self.refresh_button.set_sensitive(True)
model = self.controller.get_active_treeview().get_model()
if model is None:
if context in (ServerTab.RECENT, ServerTab.SAVED):
self.refresh_button.set_sensitive(False)
# TODO: move to filter panel
def reinit_maps(self, rows: list) -> None:
self.controller.reinit_map_store()
+19 -13
View File
@@ -1,3 +1,4 @@
from datetime import datetime
from typing import Self, Union, TYPE_CHECKING
from dzgui.const.enum import NotebookPage, ServerTab
@@ -47,23 +48,25 @@ class Statusbar(Gtk.Grid):
controller.mediator.notebook.connect_after(
"switch-page", self._on_notebook_page_changed
)
# TODO:
self.emitter.connect("distcalc_started", lambda _: self.spinner.start())
self.emitter.connect("distcalc_started", self._on_distcalc_started)
self.emitter.connect("distcalc_ended", self._on_distcalc_ended)
self.emitter.connect("servers_loaded", self._on_servers_loaded)
self.connect("distcalc_ended", self._on_distcalc_ended)
# self.connect("distcalc_ended", self._on_distcalc_ended)
@GObject.Signal(
flags=GObject.SignalFlags.RUN_LAST,
arg_types=(
object,
object,
),
)
def distcalc_ended(
self, dist: Union[str, None], context: Union["ServerTab", NotebookPage]
) -> None:
pass
# @GObject.Signal(
# flags=GObject.SignalFlags.RUN_LAST,
# arg_types=(
# object,
# object,
# ),
# )
# def distcalc_ended(
# self, dist: Union[str, None], context: Union["ServerTab", NotebookPage]
# ) -> None:
# pass
def _on_notebook_page_changed(
self, notebook: "Notebook", child: Gtk.Widget, index: int
@@ -107,6 +110,9 @@ class Statusbar(Gtk.Grid):
def _on_server_row_changed(self, statusbar: Self) -> None:
self.spinner.start()
def _on_distcalc_started(self, e) -> None:
self.spinner.start()
def _on_distcalc_ended(
self,
statusbar: Self,