diff --git a/bec_widgets/utils/entry_validator.py b/bec_widgets/utils/entry_validator.py
index cc38b2a2..426a3a2d 100644
--- a/bec_widgets/utils/entry_validator.py
+++ b/bec_widgets/utils/entry_validator.py
@@ -21,6 +21,8 @@ class EntryValidator:
if entry is None or entry == "":
entry = next(iter(device._hints), name) if hasattr(device, "_hints") else name
+ if entry == "readback":
+ entry = f"{name}"
if entry not in description:
raise ValueError(f"Entry '{entry}' not found in device '{name}' signals")
diff --git a/bec_widgets/widgets/base_classes/device_signal_input_base.py b/bec_widgets/widgets/base_classes/device_signal_input_base.py
index 6029b53f..52a40718 100644
--- a/bec_widgets/widgets/base_classes/device_signal_input_base.py
+++ b/bec_widgets/widgets/base_classes/device_signal_input_base.py
@@ -265,7 +265,7 @@ class DeviceSignalInputBase(BECWidget):
if device in self.dev:
return True
if raise_on_false is True:
- raise ValueError(f"Device {device} not found in devicemanager.")
+ raise ValueError(f"Device {device} not found in device manager.")
return False
def validate_signal(self, signal: str) -> bool:
diff --git a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py b/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py
index c7f3ea80..26d0dbac 100644
--- a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py
+++ b/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py
@@ -15,6 +15,7 @@ from bec_widgets.utils import Colors, UILoader
from bec_widgets.widgets.color_button.color_button import ColorButton
from bec_widgets.widgets.dap_combo_box.dap_combo_box import DapComboBox
from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit
+from bec_widgets.widgets.signal_line_edit.signal_line_edit import SignalLineEdit
MODULE_PATH = os.path.dirname(bec_widgets.__file__)
@@ -240,7 +241,7 @@ class DialogRow(QObject):
# Name and Entry
self.device_line_edit = DeviceLineEdit()
- self.entry_line_edit = QLineEdit()
+ self.entry_line_edit = SignalLineEdit()
self.dap_combo = DapComboBox()
self.dap_combo.populate_fit_model_combobox()
@@ -262,6 +263,7 @@ class DialogRow(QObject):
self.remove_button.clicked.connect(
lambda: self.remove_row()
) # From some reason do not work without lambda
+ self.device_line_edit.device_selected.connect(self.entry_line_edit.set_device)
def add_scan_row(self):
if self.config is not None:
@@ -319,6 +321,7 @@ class DialogRow(QObject):
def cleanup(self):
self.device_line_edit.cleanup()
+ self.entry_line_edit.cleanup()
class StyleComboBox(QComboBox):
diff --git a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui b/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui
index 62a36f47..00e9014a 100644
--- a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui
+++ b/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui
@@ -31,7 +31,7 @@
X Axis
-
+
-
@@ -113,7 +113,7 @@
-
-
+
@@ -348,11 +348,33 @@
+ SignalLineEdit
+ QLineEdit
+
+
+
ColormapSelector
QWidget
-
+
+
+ x_name
+ device_selected(QString)
+ x_entry
+ set_device(QString)
+
+
+ 465
+ 34
+
+
+ 609
+ 39
+
+
+
+