From ec740d31fdea561f1ed9274ea79b7be3b6ecba11 Mon Sep 17 00:00:00 2001 From: appel_c Date: Fri, 16 May 2025 11:41:30 +0200 Subject: [PATCH] fix(signal-line-edit): fix signal_line_edit validity check; closes #610 --- .../signal_line_edit/signal_line_edit.py | 15 ++++++++++++--- tests/unit_tests/test_device_signal_input.py | 5 +++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py b/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py index 15860f02..6e4263f2 100644 --- a/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +++ b/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py @@ -65,8 +65,8 @@ class SignalLineEdit(DeviceSignalInputBase, QLineEdit): self.set_device(device) if default is not None: self.set_signal(default) - self.textChanged.connect(self.validate_device) - self.validate_device(self.text()) + self.textChanged.connect(self.check_validity) + self.check_validity(self.text()) def get_current_device(self) -> object: """ @@ -131,6 +131,9 @@ if __name__ == "__main__": # pragma: no cover from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget from bec_widgets.utils.colors import set_theme + from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import ( + DeviceComboBox, + ) app = QApplication([]) set_theme("dark") @@ -138,6 +141,12 @@ if __name__ == "__main__": # pragma: no cover widget.setFixedSize(200, 200) layout = QVBoxLayout() widget.setLayout(layout) - layout.addWidget(SignalLineEdit(device="samx")) + device_line_edit = DeviceComboBox() + device_line_edit.filter_to_positioner = True + signal_line_edit = SignalLineEdit() + device_line_edit.device_selected.connect(signal_line_edit.set_device) + + layout.addWidget(device_line_edit) + layout.addWidget(signal_line_edit) widget.show() app.exec_() diff --git a/tests/unit_tests/test_device_signal_input.py b/tests/unit_tests/test_device_signal_input.py index 796ca33d..6635de35 100644 --- a/tests/unit_tests/test_device_signal_input.py +++ b/tests/unit_tests/test_device_signal_input.py @@ -119,3 +119,8 @@ def test_signal_lineeidt(device_signal_line_edit): assert device_signal_line_edit.signals == [] device_signal_line_edit.set_device("samx") assert device_signal_line_edit.signals == ["readback", "setpoint", "velocity"] + device_signal_line_edit.set_signal("readback") + assert device_signal_line_edit.text() == "readback" + assert device_signal_line_edit._is_valid_input is True + device_signal_line_edit.setText("invalid") + assert device_signal_line_edit._is_valid_input is False