diff --git a/bec_widgets/cli/client_utils.py b/bec_widgets/cli/client_utils.py index 9554961e..84adc93a 100644 --- a/bec_widgets/cli/client_utils.py +++ b/bec_widgets/cli/client_utils.py @@ -443,8 +443,8 @@ class BECGuiClient(RPCBase): self._update_dynamic_namespace(self._server_registry) def _do_show_all(self): - rpc_client = RPCBase(gui_id=f"{self._gui_id}:launcher", parent=self) - rpc_client._run_rpc("show") # pylint: disable=protected-access + if self.launcher and len(self._top_level) == 0: + self.launcher._run_rpc("show") # pylint: disable=protected-access for window in self._top_level.values(): window.show() @@ -454,11 +454,11 @@ class BECGuiClient(RPCBase): def _hide_all(self): with wait_for_server(self): - rpc_client = RPCBase(gui_id=f"{self._gui_id}:launcher", parent=self) - rpc_client._run_rpc("hide") # pylint: disable=protected-access - if not self._killed: - for window in self._top_level.values(): - window.hide() + if self._killed: + return + self.launcher._run_rpc("hide") + for window in self._top_level.values(): + window.hide() def _update_dynamic_namespace(self, server_registry: dict): """ diff --git a/bec_widgets/cli/rpc/rpc_base.py b/bec_widgets/cli/rpc/rpc_base.py index fdeacb13..9a5f502f 100644 --- a/bec_widgets/cli/rpc/rpc_base.py +++ b/bec_widgets/cli/rpc/rpc_base.py @@ -225,6 +225,12 @@ class RPCBase: Returns: The result of the RPC call. """ + if method in ["show", "hide"] and gui_id is None: + obj = self._root._server_registry.get(self._gui_id) + if obj is None: + raise ValueError(f"Widget {self._gui_id} not found.") + gui_id = obj.get("container_proxy") # type: ignore + request_id = str(uuid.uuid4()) rpc_msg = messages.GUIInstructionMessage( action=method,