wip line edit like optional completer for Editable Comboboxes

This commit is contained in:
2026-05-12 20:34:18 +02:00
parent b47ae8f917
commit 88f5bdfbea
6 changed files with 124 additions and 4 deletions
@@ -48,6 +48,9 @@ def test_device_input_combobox_init(device_input_combobox):
ReadoutPriority.ON_REQUEST.value,
]
assert device_input_combobox.config.default is None
assert device_input_combobox.autocomplete is False
assert device_input_combobox.completer() is not None
assert device_input_combobox.completer().model() == device_input_combobox.model()
assert device_input_combobox.devices == [
"samx",
"samy",
@@ -76,6 +79,22 @@ def test_device_input_combobox_init_with_kwargs(device_input_combobox_with_kwarg
assert device_input_combobox_with_kwargs.config.arg_name == "test_arg_name"
def test_device_input_combobox_autocomplete(qtbot, mocked_client):
widget = DeviceComboBox(client=mocked_client, autocomplete=True)
qtbot.addWidget(widget)
qtbot.waitExposed(widget)
assert widget.autocomplete is True
assert widget.completer() is not None
assert widget.completer().model().stringList() == widget.devices
assert widget.completer().model() != widget.model()
widget.autocomplete = False
assert widget.completer() is not None
assert widget.completer().model() == widget.model()
def test_get_device_from_input_combobox_init(device_input_combobox):
device_input_combobox.setCurrentIndex(0)
device_text = device_input_combobox.currentText()
@@ -44,6 +44,34 @@ def test_signal_combobox_init(device_signal_combobox):
assert device_signal_combobox._hinted_signals == []
assert device_signal_combobox._normal_signals == []
assert device_signal_combobox._config_signals == []
assert device_signal_combobox.autocomplete is False
assert device_signal_combobox.completer() is not None
assert device_signal_combobox.completer().model() == device_signal_combobox.model()
def test_signal_combobox_autocomplete(qtbot, mocked_client):
widget = create_widget(
qtbot=qtbot,
widget=SignalComboBox,
client=mocked_client,
autocomplete=True,
)
widget.set_device("samx")
assert widget.autocomplete is True
assert widget.completer() is not None
assert widget.completer().model().stringList() == [
"samx (readback)",
"setpoint",
"velocity",
]
assert widget.completer().model() != widget.model()
widget.autocomplete = False
assert widget.completer() is not None
assert widget.completer().model() == widget.model()
def test_signal_combobox_qproperties(device_signal_combobox):
+1
View File
@@ -307,6 +307,7 @@ def test_on_scan_selected(scan_control, scan_name):
assert isinstance(widget, expected_widget_type) # Confirm the widget type matches
if isinstance(widget, DeviceComboBox):
assert widget.currentText() == ""
assert widget.autocomplete is True
assert "samx" in widget.devices
assert (
"async_device" in widget.devices