atomiq.frontend.atomiq_dashboard¶
Attributes¶
Classes¶
Patches the ARTIQ argument editor table (artiq.dashboard.experiments._ArgumentEditor) to add alternating row |
|
Track scannable arguments and make a user-configurable sorting widget. |
|
Argument search bar. |
|
Patches the experiment dock (artiq.dashboard._ExperimentDock) to add a search bar and a list to choose the |
|
Patches the no scan dialog (artiq.gui.entries._NoScan) to take up less space in the arguments table. |
|
Patches the scan entry argument widget (artiq.gui.entries.ScanEntry) to add automatic resizing when switching |
Functions¶
|
Module Contents¶
- atomiq.frontend.atomiq_dashboard.DragDropMode_NoDragDrop¶
- atomiq.frontend.atomiq_dashboard._OldArgumentEditor¶
- atomiq.frontend.atomiq_dashboard._OldExperimentDock¶
- atomiq.frontend.atomiq_dashboard._OldScanEntry¶
- atomiq.frontend.atomiq_dashboard._OldNoScan¶
- atomiq.frontend.atomiq_dashboard.cls_name = ''¶
- class atomiq.frontend.atomiq_dashboard._ArgumentEditor(manager, dock, expurl)¶
Bases:
_OldArgumentEditorPatches the ARTIQ argument editor table (artiq.dashboard.experiments._ArgumentEditor) to add alternating row colors, reduce the mouse wheel scroll speed and implement an argument search.
- argument_entry_reset¶
- search(keyword)¶
- async _recompute_argument(name)¶
- class atomiq.frontend.atomiq_dashboard.ScanOrderList(sort=True, *args, **kwargs)¶
Bases:
PyQt5.QtCore.QObjectTrack scannable arguments and make a user-configurable sorting widget.
- Parameters:
sort (bool)
- scan_order_changed¶
- sort_changed¶
- _scan_order: list[str] = []¶
- _sort: bool = True¶
- _updating_from_state = False¶
- _list_widget: PyQt5.QtWidgets.QWidget | None = None¶
- _sort_checkbox: PyQt5.QtWidgets.QWidget | None = None¶
- _widget: PyQt5.QtWidgets.QWidget | None¶
- get_scan_order()¶
- set_scan_order(value)¶
- scan_order¶
- get_sort()¶
- Return type:
bool
- set_sort(value)¶
- Parameters:
value (bool)
- Return type:
None
- sort¶
- get_priority(item)¶
Return the scan priority for an argument name.
- Parameters:
item (str) -- The argument name to get the priority for.
- Returns:
The scan priority for the argument name. Items present in scan_order get their index (0..N-1). All others get priority 100.
- Return type:
int
- add(item)¶
Add an item to the scan order if it's not already present.
- Parameters:
item (str) -- The item to add to the scan order.
- remove(item)¶
Remove an item from the scan order.
- Parameters:
item (str) -- The item to remove from the scan order.
- sort_scan_order()¶
Sort the scan order in-place (lexicographically).
- Return type:
None
- _render_widget_from_scan_order()¶
Renders the widget from the current scan order.
This method updates the list widget with items from the scan order.
- Return type:
None
- _update_scan_order_from_widget(*_args)¶
Updates the scan order from the widget.
This method is triggered when the list widget content changes. It updates the scan_order attribute with the current order of items in the widget.
- Return type:
None
- _apply_sort_mode()¶
Applies the sort mode to the list widget by enabling or disabling drag/drop functionality.
If sorting is active, this method disables drag and drop operations and greys out the widget. If sorting is inactive, this method enables internal move drag and drop functionality.
- Return type:
None
- _on_sort_changed(value)¶
- Parameters:
value (bool)
- Return type:
None
- _build_widget()¶
Builds the search bar widget.
This method creates a search bar (QLineEdit) and wraps it in a QGroupBox.
- Return type:
None
- property widget: PyQt5.QtWidgets.QWidget¶
Return the scan order widget.
- Return type:
PyQt5.QtWidgets.QWidget
- class atomiq.frontend.atomiq_dashboard.SearchBar(sort=True, *args, **kwargs)¶
Bases:
PyQt5.QtCore.QObjectArgument search bar.
- Parameters:
sort (bool)
- _searchbar_widget: PyQt5.QtWidgets.QWidget | None = None¶
- _widget: PyQt5.QtWidgets.QWidget | None¶
- _build_widget()¶
Builds the search bar widget.
This method creates a search bar (QLineEdit) and wraps it in a QGroupBox.
- Return type:
None
- property widget: PyQt5.QtWidgets.QWidget¶
Return the scan order widget.
- Return type:
PyQt5.QtWidgets.QWidget
- property text_changed_signal: PyQt5.QtCore.pyqtSignal¶
Return the scan order widget.
- Return type:
PyQt5.QtCore.pyqtSignal
- class atomiq.frontend.atomiq_dashboard._ExperimentDock(*args, **kwargs)¶
Bases:
_OldExperimentDockPatches the experiment dock (artiq.dashboard._ExperimentDock) to add a search bar and a list to choose the scan order.
- argument_entry_reset¶
- search_bar¶
- scan_order_editor¶
- _connect_search_bar()¶
- _connect_scan_entries()¶
Connects all ScanEntry widgets to the scan entry changed handler.
This method re-imports the scan entry module to avoid monkey patching issues, then finds all ScanEntry widgets in the UI and connects their scan_entry_changed signals to the on_scan_entry_changed handler method.
- on_scan_entry_changed()¶
Handle changes to scan entries in the submission arguments.
The method checks each argument in the submission and determines whether it should be included in the scan order based on: - Whether the argument type is "Scannable" - Whether the NoScan repetition count is greater than 1 - Whether the current argument type is not "NoScan"
- _connect_and_reload_scan_entries()¶
- childEvent(event)¶
Handle child events for the dashboard.
This method overrides the default childEvent handling to connect scan entry changed signals to the on_scan_entry_changed handler when new ScanEntry objects are added to the dashboard.
- Parameters:
event -- The child event that was triggered
- _apply_scan_priorities_from_model()¶
Apply scan_priority for all arguments of this experiment based on ScanOrderList.scan_order.
In-order items get scan_priority = 0..N-1. All others get scan_priority = 100.
- Return type:
None
- async _recompute_arguments_task(*args, **kwargs)¶
- class atomiq.frontend.atomiq_dashboard._NoScan(*args, **kwargs)¶
Bases:
_OldNoScanPatches the no scan dialog (artiq.gui.entries._NoScan) to take up less space in the arguments table.
- class atomiq.frontend.atomiq_dashboard.ScanEntry(*args, **kwargs)¶
Bases:
_OldScanEntryPatches the scan entry argument widget (artiq.gui.entries.ScanEntry) to add automatic resizing when switching between the scan modes.
- scan_entry_changed¶
- _scan_type_toggled()¶
- Return type:
None
- _notify_scan_entry_changed()¶
- _delegate_size_change()¶
- changeEvent(e)¶
- Return type:
None
- atomiq.frontend.atomiq_dashboard.main()¶