mirror of
https://github.com/aclist/dztui.git
synced 2026-11-01 07:32:44 +01:00
fix: set filter panel to insensitive on lan load
This commit is contained in:
1 parent
efddd61ea1
commit
00e78b1228
3 files changed
+18
-2
No files matched your search
@@ -12,6 +12,7 @@ if TYPE_CHECKING:
|
|||||||
|
|
||||||
# TODO: if servers fail to load, may leave dangling widgets waiting for a signal
|
# TODO: if servers fail to load, may leave dangling widgets waiting for a signal
|
||||||
|
|
||||||
|
|
||||||
class Emitter(GObject.GObject):
|
class Emitter(GObject.GObject):
|
||||||
def __init__(self) -> None:
|
def __init__(self) -> None:
|
||||||
super().__init__()
|
super().__init__()
|
||||||
@@ -150,3 +151,6 @@ class Emitter(GObject.GObject):
|
|||||||
def keyword_set(self, keyword: str) -> None:
|
def keyword_set(self, keyword: str) -> None:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
@GObject.Signal(flags=GObject.SignalFlags.RUN_LAST, arg_types=())
|
||||||
|
def lan_page_initialized(self) -> None:
|
||||||
|
pass
|
||||||
@@ -73,6 +73,7 @@ class ServerModelManager:
|
|||||||
self._dump_history()
|
self._dump_history()
|
||||||
case ServerTab.LAN:
|
case ServerTab.LAN:
|
||||||
# NOTE: LAN tab is only loaded on demand
|
# NOTE: LAN tab is only loaded on demand
|
||||||
|
self.emitter.emit("lan_page_initialized")
|
||||||
pass
|
pass
|
||||||
case _:
|
case _:
|
||||||
pass
|
pass
|
||||||
@@ -123,7 +124,7 @@ class ServerModelManager:
|
|||||||
parsed = Servers.parse_json(servers)
|
parsed = Servers.parse_json(servers)
|
||||||
self._push_data(parsed)
|
self._push_data(parsed)
|
||||||
|
|
||||||
@call_on_thread(dialog.scanning)
|
@call_on_thread(dialog.scanning, show_cancel=True)
|
||||||
def dump_lan(self, port: int, early_abort: bool) -> None:
|
def dump_lan(self, port: int, early_abort: bool) -> None:
|
||||||
self.first_iteration = True
|
self.first_iteration = True
|
||||||
|
|
||||||
@@ -137,6 +138,11 @@ class ServerModelManager:
|
|||||||
for future in as_completed(futures):
|
for future in as_completed(futures):
|
||||||
try:
|
try:
|
||||||
if self.controller.get_exit_event().is_set():
|
if self.controller.get_exit_event().is_set():
|
||||||
|
event.set()
|
||||||
|
return
|
||||||
|
if self.controller.get_cancel_event().is_set():
|
||||||
|
event.set()
|
||||||
|
self.controller.clear_cancel_event()
|
||||||
return
|
return
|
||||||
res = future.result(timeout=LAN_TIMEOUT)
|
res = future.result(timeout=LAN_TIMEOUT)
|
||||||
if res is None:
|
if res is None:
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ class RightPanel(Gtk.Box):
|
|||||||
emitter = controller.get_emitter()
|
emitter = controller.get_emitter()
|
||||||
emitter.connect("servers_loaded", self._on_servers_loaded)
|
emitter.connect("servers_loaded", self._on_servers_loaded)
|
||||||
emitter.connect("server_page_changed", self._on_server_page_changed)
|
emitter.connect("server_page_changed", self._on_server_page_changed)
|
||||||
|
emitter.connect("lan_page_initialized", self._on_lan_page_init)
|
||||||
|
|
||||||
self.button_vbox = ButtonBox(controller)
|
self.button_vbox = ButtonBox(controller)
|
||||||
self.filters_vbox = FilterPanel(controller)
|
self.filters_vbox = FilterPanel(controller)
|
||||||
@@ -152,10 +153,15 @@ class RightPanel(Gtk.Box):
|
|||||||
return
|
return
|
||||||
self.filters_vbox.set_sensitive(False)
|
self.filters_vbox.set_sensitive(False)
|
||||||
|
|
||||||
|
def _on_lan_page_init(self, emitter: "Emitter") -> None:
|
||||||
|
self.filters_vbox.set_sensitive(False)
|
||||||
|
self.refresh_button.set_sensitive(False)
|
||||||
|
|
||||||
def _on_servers_loaded(self, emitter: "Emitter", context: "ServerTab") -> None:
|
def _on_servers_loaded(self, emitter: "Emitter", context: "ServerTab") -> None:
|
||||||
# TODO: similar logic on notebook page change
|
# TODO: similar logic on notebook page change
|
||||||
state = self.controller.has_server_model()
|
state = self.controller.has_server_model()
|
||||||
self.filters_vbox.set_sensitive(state)
|
for el in self.filters_vbox, self.refresh_button:
|
||||||
|
el.set_sensitive(state)
|
||||||
|
|
||||||
def _on_version_clicked(self, widget: Gtk.EventBox, event: Gdk.EventButton) -> None:
|
def _on_version_clicked(self, widget: Gtk.EventBox, event: Gdk.EventButton) -> None:
|
||||||
def revert() -> Literal[False]:
|
def revert() -> Literal[False]:
|
||||||
|
|||||||
Reference in new issue
Block a user