diff --git a/src/calng/scenes.py b/src/calng/scenes.py index 6a8894815db3f1411f6feb4dac669e1bacac4502..8db15b4919563054e0e01b948e6235a7bda89400 100644 --- a/src/calng/scenes.py +++ b/src/calng/scenes.py @@ -342,7 +342,7 @@ class CompactDeviceLinkList(VerticalLayout): @titled("Assembler status", width=8 * NARROW_INC) @boxed class AssemblerDeviceStatus(VerticalLayout): - def __init__(self, device_id): + def __init__(self, device_id, geometry_device_id): super().__init__(padding=0) name = DisplayLabelModel( keys=[f"{device_id}.deviceId"], @@ -396,11 +396,29 @@ class AssemblerDeviceStatus(VerticalLayout): width=14 * BASE_INC, height=BASE_INC, ), - DisplayLabelModel( - keys=[f"{device_id}.geometryDevice"], + # note: link based on current value when generating + DeviceSceneLinkModel( + text=geometry_device_id, + keys=[f"{geometry_device_id}.availableScenes"], + target="overview", + target_window=SceneTargetWindow.Dialog, width=14 * BASE_INC, height=BASE_INC, - ), # TODO: some day, get dynamic link to this friend + ), + HorizontalLayout( + LabelModel( + text="My geometry:", + width=7 * BASE_INC, + height=BASE_INC, + ), + DisplayStateColorModel( + show_string=True, + keys=[f"{device_id}.geometryState"], + width=7 * BASE_INC, + height=BASE_INC, + ), + padding=0, + ), ] ) @@ -1095,11 +1113,11 @@ def correction_constant_dashboard( @scene_generator -def detector_assembler_overview(device_id, schema): +def detector_assembler_overview(device_id, schema, geometry_device_id): schema_hash = schema_to_hash(schema) return VerticalLayout( HorizontalLayout( - AssemblerDeviceStatus(device_id), + AssemblerDeviceStatus(device_id, geometry_device_id), PreviewSettings(device_id, schema_hash, "preview.assembled"), ), PreviewDisplayArea(