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

fix(ring): automatic updates are disabled uf user specify updates manually with .set_update; 'scan_progres' do not reset number of rings

This commit is contained in:
2024-06-06 11:26:59 +02:00
parent a2abad344f
commit e883dbad81
2 changed files with 14 additions and 5 deletions

View File

@ -166,6 +166,8 @@ class Ring(BECConnector):
elif mode == "device":
self.set_connections("on_device_readback", f"internal/devices/readback/{device}")
self.parent_progress_widget.enable_auto_updates(False)
def set_connections(self, slot: str, endpoint: str | EndpointInfo):
if self.config.connections.endpoint == endpoint and self.config.connections.slot == slot:
return

View File

@ -23,7 +23,7 @@ class SpiralProgressBarConfig(ConnectionConfig):
10, description="Maximum number of progress bars to display."
)
num_bars: int | None = Field(1, description="Number of progress bars to display.")
gap: int | None = Field(10, description="Gap between progress bars.")
gap: int | None = Field(20, description="Gap between progress bars.")
auto_updates: bool | None = Field(
True, description="Enable or disable updates based on scan queue status."
)
@ -186,13 +186,22 @@ class SpiralProgressBar(BECConnector, QWidget):
Ring: Ring object.
"""
if self.config.num_bars < self.config.max_number_of_bars:
ring = Ring(parent_progress_widget=self, **kwargs)
ring.config.index = self.config.num_bars
ring_index = self.config.num_bars
ring_config = RingConfig(
widget_class="Ring",
index=ring_index,
start_positions=90 * 16,
directions=-1,
**kwargs,
)
ring = Ring(parent_progress_widget=self, config=ring_config)
self.config.num_bars += 1
self._rings.append(ring)
self.config.rings.append(ring.config)
if self.config.color_map:
self.set_colors_from_map(self.config.color_map)
base_line_width = self._rings[ring.config.index].config.line_width
self.set_line_widths(base_line_width, ring.config.index)
self.update()
return ring
@ -465,8 +474,6 @@ class SpiralProgressBar(BECConnector, QWidget):
if report_instructions:
instruction_type = list(report_instructions[0].keys())[0]
if instruction_type == "scan_progress":
if self.config.num_bars != 1:
self.set_number_of_bars(1)
self._hook_scan_progress(ring_index=0)
elif instruction_type == "readback":
devices = report_instructions[0].get("readback").get("devices")