mirror of
https://github.com/aclist/dztui.git
synced 2026-08-26 01:37:18 +02:00
Merge pull request #381 from aclist/fix/modpanel-sens
Some checks are pending
Mirror to Codeberg / mirror-to-codeberg (push) Waiting to run
Some checks are pending
Mirror to Codeberg / mirror-to-codeberg (push) Waiting to run
fix: toggle mod panel sensitivity on map
This commit is contained in:
commit
81168d3952
@ -81,8 +81,8 @@ class Emitter(GObject.GObject):
|
||||
def distcalc_started(self) -> None:
|
||||
pass
|
||||
|
||||
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(bool,))
|
||||
def mod_page_toggled(self, state: bool) -> None:
|
||||
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(bool, int))
|
||||
def mod_page_toggled(self, state: bool, mods: int) -> None:
|
||||
pass
|
||||
|
||||
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=(bool,))
|
||||
|
||||
@ -80,14 +80,18 @@ class ModSelectionPanel(Gtk.Box):
|
||||
self.highlight_stale_button.set_sensitive(True)
|
||||
|
||||
def _on_mods_updated(self, emitter: "Emitter", msg: str, mods: int) -> None:
|
||||
if mods < 1:
|
||||
self.main_panel.set_sensitive(False)
|
||||
self.stale_panel.set_sensitive(False)
|
||||
self._toggle_panel_sensitivity(mods)
|
||||
|
||||
def _toggle_panel_sensitivity(self, mods: int) -> None:
|
||||
state = bool(mods)
|
||||
for el in self.main_panel, self.stale_panel:
|
||||
el.set_sensitive(state)
|
||||
|
||||
def _on_mods_highlighted(self, emitter: "Emitter") -> None:
|
||||
self.swap_sensitive(True)
|
||||
|
||||
def _on_mod_page_toggled(self, emitter: "Emitter", state: bool) -> None:
|
||||
def _on_mod_page_toggled(self, emitter: "Emitter", state: bool, mods: int) -> None:
|
||||
self._toggle_panel_sensitivity(mods)
|
||||
self.set_visible(state)
|
||||
|
||||
def swap_sensitive(self, state: bool) -> None:
|
||||
|
||||
@ -64,10 +64,15 @@ class Mods(Gtk.Box):
|
||||
self.controller.open_offline()
|
||||
|
||||
def _on_unmap(self, widget: Self) -> None:
|
||||
self.emitter.emit("mod_page_toggled", False)
|
||||
self.emitter.emit("mod_page_toggled", False, 0)
|
||||
|
||||
def _on_map(self, widget: Self) -> None:
|
||||
self.emitter.emit("mod_page_toggled", True)
|
||||
model = self.tree.get_model()
|
||||
if model is None:
|
||||
mods = 0
|
||||
else:
|
||||
mods = len(model)
|
||||
self.emitter.emit("mod_page_toggled", True, mods)
|
||||
# TODO: delegation
|
||||
# NOTE: handles going back from offline mods page
|
||||
# more generic cache restoration method
|
||||
|
||||
Loading…
Reference in New Issue
Block a user