From c2d2c484cd1f133f45fe7147616c22c0b5fd5611 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Tue, 25 Mar 2025 12:47:29 +0100 Subject: [PATCH] fix(waveform): legend is correctly updated when changed from curve dialog --- bec_widgets/cli/client.py | 6 ++++++ .../plots/waveform/settings/curve_settings/curve_tree.py | 5 ++--- bec_widgets/widgets/plots/waveform/waveform.py | 1 + tests/unit_tests/test_curve_settings.py | 5 ++--- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/bec_widgets/cli/client.py b/bec_widgets/cli/client.py index 69790761..a56c6af0 100644 --- a/bec_widgets/cli/client.py +++ b/bec_widgets/cli/client.py @@ -3468,6 +3468,12 @@ class Waveform(RPCBase): Public method if you want the old `select_roi` style. """ + @rpc_call + def clear_all(self): + """ + Clear all curves from the plot widget. + """ + class WebsiteWidget(RPCBase): """A simple widget to display a website""" diff --git a/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py b/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py index 0c794e74..89cb5d5b 100644 --- a/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +++ b/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py @@ -290,8 +290,7 @@ class CurveRow(QTreeWidgetItem): self.entry_edit.setText(device_entry) self.config.signal = DeviceSignal(name=device_name, entry=device_entry) self.config.source = "device" - if not self.config.label: - self.config.label = f"{device_name}-{device_entry}".strip("-") + self.config.label = f"{device_name}-{device_entry}" else: # DAP logic parent_conf_dict = {} @@ -310,7 +309,7 @@ class CurveRow(QTreeWidgetItem): self.config.signal = DeviceSignal(name=dev_name, entry=dev_entry, dap=new_dap) self.config.source = "dap" self.config.parent_label = parent_conf.label - self.config.label = f"{parent_conf.label}-{new_dap}".strip("-") + self.config.label = f"{parent_conf.label}-{new_dap}" # Common style fields self.config.color = self.color_button.color() diff --git a/bec_widgets/widgets/plots/waveform/waveform.py b/bec_widgets/widgets/plots/waveform/waveform.py index 5f8f2969..b8527a01 100644 --- a/bec_widgets/widgets/plots/waveform/waveform.py +++ b/bec_widgets/widgets/plots/waveform/waveform.py @@ -97,6 +97,7 @@ class Waveform(PlotBase): "get_all_data", "get_curve", "select_roi", + "clear_all", ] sync_signal_update = Signal() diff --git a/tests/unit_tests/test_curve_settings.py b/tests/unit_tests/test_curve_settings.py index 2553c549..c3b11ebb 100644 --- a/tests/unit_tests/test_curve_settings.py +++ b/tests/unit_tests/test_curve_settings.py @@ -344,7 +344,6 @@ def test_export_data_dap(curve_tree_fixture): # Add a device curve with specific parameters device_row = curve_tree.add_new_curve(name="bpm4i", entry="bpm4i") - device_row.config.label = "bpm4i-main" # Add a DAP child device_row.add_dap_row() @@ -358,8 +357,8 @@ def test_export_data_dap(curve_tree_fixture): # Check the exported data assert exported["source"] == "dap" - assert exported["parent_label"] == "bpm4i-main" + assert exported["parent_label"] == "bpm4i-bpm4i" assert exported["signal"]["name"] == "bpm4i" assert exported["signal"]["entry"] == "bpm4i" assert exported["signal"]["dap"] == "GaussianModel" - assert exported["label"] == "bpm4i-main-GaussianModel" + assert exported["label"] == "bpm4i-bpm4i-GaussianModel"