0
0
mirror of https://github.com/bec-project/bec_widgets.git synced 2025-07-13 19:21:50 +02:00

fix(signal-line-edit): fix signal_line_edit validity check; closes #610

This commit is contained in:
2025-05-16 11:41:30 +02:00
committed by Jan Wyzula
parent 5c12ab1992
commit ec740d31fd
2 changed files with 17 additions and 3 deletions

View File

@ -65,8 +65,8 @@ class SignalLineEdit(DeviceSignalInputBase, QLineEdit):
self.set_device(device) self.set_device(device)
if default is not None: if default is not None:
self.set_signal(default) self.set_signal(default)
self.textChanged.connect(self.validate_device) self.textChanged.connect(self.check_validity)
self.validate_device(self.text()) self.check_validity(self.text())
def get_current_device(self) -> object: def get_current_device(self) -> object:
""" """
@ -131,6 +131,9 @@ if __name__ == "__main__": # pragma: no cover
from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget
from bec_widgets.utils.colors import set_theme from bec_widgets.utils.colors import set_theme
from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import (
DeviceComboBox,
)
app = QApplication([]) app = QApplication([])
set_theme("dark") set_theme("dark")
@ -138,6 +141,12 @@ if __name__ == "__main__": # pragma: no cover
widget.setFixedSize(200, 200) widget.setFixedSize(200, 200)
layout = QVBoxLayout() layout = QVBoxLayout()
widget.setLayout(layout) 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() widget.show()
app.exec_() app.exec_()

View File

@ -119,3 +119,8 @@ def test_signal_lineeidt(device_signal_line_edit):
assert device_signal_line_edit.signals == [] assert device_signal_line_edit.signals == []
device_signal_line_edit.set_device("samx") device_signal_line_edit.set_device("samx")
assert device_signal_line_edit.signals == ["readback", "setpoint", "velocity"] 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