mirror of
https://github.com/aclist/dztui.git
synced 2026-11-06 01:54:49 +01:00
fix: statusbar signals
This commit is contained in:
1 parent
fc294bcede
commit
2ef62416c0
7 files changed
+108
-63
No files matched your search
@@ -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()
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user