From b72f0dc6e8474a65c83f7e2c938fc6356b7b5f3a Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Wed, 26 Nov 2025 13:40:28 +0100 Subject: [PATCH] fix(curve): update dap curves if data are set manually --- bec_widgets/widgets/plots/waveform/curve.py | 1 + tests/unit_tests/test_waveform.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/bec_widgets/widgets/plots/waveform/curve.py b/bec_widgets/widgets/plots/waveform/curve.py index 6b9ba105..250a83e2 100644 --- a/bec_widgets/widgets/plots/waveform/curve.py +++ b/bec_widgets/widgets/plots/waveform/curve.py @@ -206,6 +206,7 @@ class Curve(BECConnector, pg.PlotDataItem): """ if self.config.source in ["custom", "history"]: self.setData(x, y) + self.parent_item.request_dap_update.emit() else: raise ValueError(f"Source {self.config.source} do not allow custom data setting.") diff --git a/tests/unit_tests/test_waveform.py b/tests/unit_tests/test_waveform.py index 49a5524a..142b0e73 100644 --- a/tests/unit_tests/test_waveform.py +++ b/tests/unit_tests/test_waveform.py @@ -496,6 +496,13 @@ def test_add_dap_curve_custom_source(qtbot, mocked_client_with_dap): assert dap_curve.config.signal.dap == "GaussianModel" +def test_curve_set_data_emits_dap_update(qtbot, mocked_client): + wf = create_widget(qtbot, Waveform, client=mocked_client) + c = wf.plot(x=[1, 2, 3], y=[4, 5, 6], label="test_curve") + with qtbot.waitSignal(wf.request_dap_update): + c.set_data([7, 8, 9], [10, 11, 12]) + + def test_plot_custom_curve_with_inline_dap(qtbot, mocked_client_with_dap): """ Supplying the `dap` kwarg when plotting custom data should auto-create the fit curve.