0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-14 03:31:50 +02:00

WIP becconnector is passing object_name; dock area supports object name hardcoded

This commit is contained in:
2025-04-08 11:04:13 +02:00
parent 0538f45d9c
commit c59871de52
5 changed files with 24 additions and 10 deletions

View File

@ -1,6 +1,6 @@
from bec_widgets.widgets.containers.dock.dock_area import BECDockArea
def dock_area(name: str | None = None):
_dock_area = BECDockArea(name=name)
def dock_area(object_name: str | None = None):
_dock_area = BECDockArea(object_name=object_name)
return _dock_area

View File

@ -71,7 +71,11 @@ def _get_output(process, logger) -> None:
def _start_plot_process(
gui_id: str, gui_class_id: str, config: dict | str, gui_class: str = "launcher", logger=None
gui_id: str,
gui_class_id: str,
config: dict | str,
gui_class: str = "dock_area",
logger=None, # FIXME change gui_class back to "launcher" later
) -> tuple[subprocess.Popen[str], threading.Thread | None]:
"""
Start the plot in a new process.
@ -199,7 +203,7 @@ class BECGuiClient(RPCBase):
def __init__(self, **kwargs) -> None:
super().__init__(**kwargs)
self._lock = Lock()
self._default_dock_name = "BECDockArea"
self._anchor_widget = "launcher"
self._auto_updates_enabled = True
self._auto_updates = None
self._killed = False
@ -365,7 +369,7 @@ class BECGuiClient(RPCBase):
# After 60s timeout. Should this raise an exception on timeout?
while time.time() < time.time() + timeout:
if len(list(self._server_registry.keys())) < 2 or not hasattr(
self, self._default_dock_name
self, self._anchor_widget
):
time.sleep(0.1)
else:
@ -383,7 +387,7 @@ class BECGuiClient(RPCBase):
self._gui_started_event.clear()
self._process, self._process_output_processing_thread = _start_plot_process(
self._gui_id,
gui_class_id=self._default_dock_name,
gui_class_id="bec", # FIXME me experiment
config=self._client._service_config.config, # pylint: disable=protected-access
logger=logger,
)

View File

@ -172,6 +172,6 @@ class RPCRegisterBroadcast:
"""Exit the context manager"""
self._call_depth -= 1 # Remove nested calls
if self._call_depth == 0: # Last one to exit is repsonsible for broadcasting
if self._call_depth == 0: # The Last one to exit is responsible for broadcasting
self.rpc_register._skip_broadcast = False
self.rpc_register.broadcast()

View File

@ -83,7 +83,7 @@ class BECConnector:
client=None,
config: ConnectionConfig | None = None,
gui_id: str | None = None,
# name: str | None = None,
object_name: str | None = None,
parent_dock: BECDock | None = None,
parent_id: str | None = None,
**kwargs,
@ -134,6 +134,9 @@ class BECConnector:
# raise ValueError(f"Name {name} contains invalid characters.")
# TODO Hierarchy can be refreshed upon creation -> also registry should be notified if objectName changes
if isinstance(self, QObject):
if object_name is not None:
self.setObjectName(object_name)
# 1) If no objectName is set, set the initial name
if not self.objectName():
self.setObjectName(self.__class__.__name__)

View File

@ -74,7 +74,7 @@ class BECDockArea(BECWidget, QWidget):
config: DockAreaConfig | None = None,
client=None,
gui_id: str = None,
name: str | None = None,
object_name: str = None,
**kwargs,
) -> None:
if config is None:
@ -83,7 +83,14 @@ class BECDockArea(BECWidget, QWidget):
if isinstance(config, dict):
config = DockAreaConfig(**config)
self.config = config
super().__init__(parent=parent, client=client, gui_id=gui_id, config=config, **kwargs)
super().__init__(
parent=parent,
object_name=object_name,
client=client,
gui_id=gui_id,
config=config,
**kwargs,
)
self._parent = parent
self.layout = QVBoxLayout(self)
self.layout.setSpacing(5)