bec-widgets 2.7.0__tar.gz → 2.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/CHANGELOG.md +43 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/PKG-INFO +1 -1
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/client.py +116 -4
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/server.py +0 -1
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/tests/utils.py +7 -1
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/toolbar.py +7 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +6 -3
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +4 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +20 -2
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +3 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +30 -4
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +19 -6
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/plot_base.py +44 -4
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/waveform.py +5 -5
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/pyproject.toml +1 -1
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.git_hooks/pre-commit +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/actions/bw_install/action.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/pull_request_template.md +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/scripts/pr_issue_sync/pr_issue_sync.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/scripts/pr_issue_sync/requirements.txt +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/check_pr.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/ci.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/end2end-conda.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/formatter.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/generate-cli-check.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/pytest-matrix.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/pytest.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/semantic_release.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.github/workflows/sync-issues-pr.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.gitignore +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.gitlab-ci.yml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.pylintrc +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/.readthedocs.yaml +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/LICENSE +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/README.md +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/applications/bw_launch.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/applications/launch_window.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/assets/app_icons/auto_update.png +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/rpc/rpc_register.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/bec_plugin_helper.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/compact_popup.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/error_popups.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/expandable_frame.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/forms_from_types/forms.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/forms_from_types/items.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/name_utils.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/palette_viewer.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/redis_message_waiter.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/round_frame.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/rpc_server.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/serialization.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/settings_dialog.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/side_panel.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/console/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/console/console.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/console/register_console.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/web_console/register_web_console.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/web_console/web_console.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/web_console/web_console.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/web_console/web_console_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/website/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/image.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/image_item.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/image_roi_plot.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/register_image.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/setting_widgets/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/settings/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/motor_selection.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/settings/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/roi/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/settings/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/setting_menus/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/toolbar_bundles/mouse_interactions.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/toolbar_bundles/plot_export.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/toolbar_bundles/roi_bundle.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/toolbar_bundles/save_state.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/settings/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/utils/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinbox/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button_native/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-2.7.0 → bec_widgets-2.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,49 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v2.8.0 (2025-05-26)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **ImageProcessing**: Use target widget as parent
|
9
|
+
([`d8547c7`](https://github.com/bec-project/bec_widgets/commit/d8547c7a56cea72dd41a2020c47adfd93969139f))
|
10
|
+
|
11
|
+
### Features
|
12
|
+
|
13
|
+
- **plot_base**: Add option to specify units
|
14
|
+
([`3484507`](https://github.com/bec-project/bec_widgets/commit/3484507c75500dc1b1a53853ff01937ad9ad8913))
|
15
|
+
|
16
|
+
### Refactoring
|
17
|
+
|
18
|
+
- **server**: Minor cleanup of imports
|
19
|
+
([`8abebb7`](https://github.com/bec-project/bec_widgets/commit/8abebb72862c44d32a24f5e692319dec7a0891bf))
|
20
|
+
|
21
|
+
- **toolbar**: Add warning if no parent is provided as it may lead to segfaults
|
22
|
+
([`4f69f5d`](https://github.com/bec-project/bec_widgets/commit/4f69f5da45420d92fd985801a8920ecf10166554))
|
23
|
+
|
24
|
+
|
25
|
+
## v2.7.1 (2025-05-26)
|
26
|
+
|
27
|
+
### Bug Fixes
|
28
|
+
|
29
|
+
- **signal-combobox**: Bug fix in signal combobox that crashed upon switching from device to signal
|
30
|
+
input
|
31
|
+
([`1a4eb1d`](https://github.com/bec-project/bec_widgets/commit/1a4eb1db67ff6cfc45ce91cd264ae2818a57230a))
|
32
|
+
|
33
|
+
- **signal-line-edit**: Fix signal_line_edit validity check; closes #610
|
34
|
+
([`ec740d3`](https://github.com/bec-project/bec_widgets/commit/ec740d31fdea561f1ed9274ea79b7be3b6ecba11))
|
35
|
+
|
36
|
+
### Refactoring
|
37
|
+
|
38
|
+
- Add rpc interface to signal_line_edit/combobox; add user access methods
|
39
|
+
([`a8811c9`](https://github.com/bec-project/bec_widgets/commit/a8811c9d914feacf08f2f1f1aaf16302cd320ba3))
|
40
|
+
|
41
|
+
### Testing
|
42
|
+
|
43
|
+
- **input-widgets**: Add e2e tests to test widget inputs with demo config of bec.
|
44
|
+
([`f57950c`](https://github.com/bec-project/bec_widgets/commit/f57950c4e3b0b5eab7bc303eaead89f7e50e2804))
|
45
|
+
|
46
|
+
|
4
47
|
## v2.7.0 (2025-05-26)
|
5
48
|
|
6
49
|
### Bug Fixes
|
@@ -51,6 +51,8 @@ _Widgets = {
|
|
51
51
|
"RingProgressBar": "RingProgressBar",
|
52
52
|
"ScanControl": "ScanControl",
|
53
53
|
"ScatterWaveform": "ScatterWaveform",
|
54
|
+
"SignalComboBox": "SignalComboBox",
|
55
|
+
"SignalLineEdit": "SignalLineEdit",
|
54
56
|
"StopButton": "StopButton",
|
55
57
|
"TextBox": "TextBox",
|
56
58
|
"VSCodeEditor": "VSCodeEditor",
|
@@ -939,9 +941,22 @@ class DeviceComboBox(RPCBase):
|
|
939
941
|
"""Combobox widget for device input with autocomplete for device names."""
|
940
942
|
|
941
943
|
@rpc_call
|
942
|
-
def
|
944
|
+
def set_device(self, device: "str"):
|
943
945
|
"""
|
944
|
-
|
946
|
+
Set the device.
|
947
|
+
|
948
|
+
Args:
|
949
|
+
device (str): Default name.
|
950
|
+
"""
|
951
|
+
|
952
|
+
@property
|
953
|
+
@rpc_call
|
954
|
+
def devices(self) -> "list[str]":
|
955
|
+
"""
|
956
|
+
Get the list of devices for the applied filters.
|
957
|
+
|
958
|
+
Returns:
|
959
|
+
list[str]: List of devices.
|
945
960
|
"""
|
946
961
|
|
947
962
|
|
@@ -959,9 +974,32 @@ class DeviceLineEdit(RPCBase):
|
|
959
974
|
"""Line edit widget for device input with autocomplete for device names."""
|
960
975
|
|
961
976
|
@rpc_call
|
962
|
-
def
|
977
|
+
def set_device(self, device: "str"):
|
963
978
|
"""
|
964
|
-
|
979
|
+
Set the device.
|
980
|
+
|
981
|
+
Args:
|
982
|
+
device (str): Default name.
|
983
|
+
"""
|
984
|
+
|
985
|
+
@property
|
986
|
+
@rpc_call
|
987
|
+
def devices(self) -> "list[str]":
|
988
|
+
"""
|
989
|
+
Get the list of devices for the applied filters.
|
990
|
+
|
991
|
+
Returns:
|
992
|
+
list[str]: List of devices.
|
993
|
+
"""
|
994
|
+
|
995
|
+
@property
|
996
|
+
@rpc_call
|
997
|
+
def _is_valid_input(self) -> bool:
|
998
|
+
"""
|
999
|
+
Check if the current value is a valid device name.
|
1000
|
+
|
1001
|
+
Returns:
|
1002
|
+
bool: True if the current value is a valid device name, False otherwise.
|
965
1003
|
"""
|
966
1004
|
|
967
1005
|
|
@@ -3347,6 +3385,80 @@ class ScatterWaveform(RPCBase):
|
|
3347
3385
|
"""
|
3348
3386
|
|
3349
3387
|
|
3388
|
+
class SignalComboBox(RPCBase):
|
3389
|
+
"""Line edit widget for device input with autocomplete for device names."""
|
3390
|
+
|
3391
|
+
@rpc_call
|
3392
|
+
def set_signal(self, signal: str):
|
3393
|
+
"""
|
3394
|
+
Set the signal.
|
3395
|
+
|
3396
|
+
Args:
|
3397
|
+
signal (str): signal name.
|
3398
|
+
"""
|
3399
|
+
|
3400
|
+
@rpc_call
|
3401
|
+
def set_device(self, device: str | None):
|
3402
|
+
"""
|
3403
|
+
Set the device. If device is not valid, device will be set to None which happens
|
3404
|
+
|
3405
|
+
Args:
|
3406
|
+
device(str): device name.
|
3407
|
+
"""
|
3408
|
+
|
3409
|
+
@property
|
3410
|
+
@rpc_call
|
3411
|
+
def signals(self) -> list[str]:
|
3412
|
+
"""
|
3413
|
+
Get the list of device signals for the applied filters.
|
3414
|
+
|
3415
|
+
Returns:
|
3416
|
+
list[str]: List of device signals.
|
3417
|
+
"""
|
3418
|
+
|
3419
|
+
|
3420
|
+
class SignalLineEdit(RPCBase):
|
3421
|
+
"""Line edit widget for device input with autocomplete for device names."""
|
3422
|
+
|
3423
|
+
@property
|
3424
|
+
@rpc_call
|
3425
|
+
def _is_valid_input(self) -> bool:
|
3426
|
+
"""
|
3427
|
+
Check if the current value is a valid device name.
|
3428
|
+
|
3429
|
+
Returns:
|
3430
|
+
bool: True if the current value is a valid device name, False otherwise.
|
3431
|
+
"""
|
3432
|
+
|
3433
|
+
@rpc_call
|
3434
|
+
def set_signal(self, signal: str):
|
3435
|
+
"""
|
3436
|
+
Set the signal.
|
3437
|
+
|
3438
|
+
Args:
|
3439
|
+
signal (str): signal name.
|
3440
|
+
"""
|
3441
|
+
|
3442
|
+
@rpc_call
|
3443
|
+
def set_device(self, device: str | None):
|
3444
|
+
"""
|
3445
|
+
Set the device. If device is not valid, device will be set to None which happens
|
3446
|
+
|
3447
|
+
Args:
|
3448
|
+
device(str): device name.
|
3449
|
+
"""
|
3450
|
+
|
3451
|
+
@property
|
3452
|
+
@rpc_call
|
3453
|
+
def signals(self) -> list[str]:
|
3454
|
+
"""
|
3455
|
+
Get the list of device signals for the applied filters.
|
3456
|
+
|
3457
|
+
Returns:
|
3458
|
+
list[str]: List of device signals.
|
3459
|
+
"""
|
3460
|
+
|
3461
|
+
|
3350
3462
|
class StopButton(RPCBase):
|
3351
3463
|
"""A button that stops the current scan."""
|
3352
3464
|
|
@@ -200,7 +200,13 @@ class DMMock:
|
|
200
200
|
self.devices = DeviceContainer()
|
201
201
|
self.enabled_devices = [device for device in self.devices if device.enabled]
|
202
202
|
|
203
|
-
def
|
203
|
+
def add_devices(self, devices: list):
|
204
|
+
"""
|
205
|
+
Add devices to the DeviceContainer.
|
206
|
+
|
207
|
+
Args:
|
208
|
+
devices (list): List of device instances to add.
|
209
|
+
"""
|
204
210
|
for device in devices:
|
205
211
|
self.devices[device.name] = device
|
206
212
|
|
@@ -7,6 +7,7 @@ from abc import ABC, abstractmethod
|
|
7
7
|
from collections import defaultdict
|
8
8
|
from typing import Dict, List, Literal, Tuple
|
9
9
|
|
10
|
+
from bec_lib.logger import bec_logger
|
10
11
|
from bec_qthemes._icon.material_icons import material_icon
|
11
12
|
from qtpy.QtCore import QSize, Qt, QTimer
|
12
13
|
from qtpy.QtGui import QAction, QColor, QIcon
|
@@ -31,6 +32,8 @@ from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import
|
|
31
32
|
|
32
33
|
MODULE_PATH = os.path.dirname(bec_widgets.__file__)
|
33
34
|
|
35
|
+
logger = bec_logger.logger
|
36
|
+
|
34
37
|
# Ensure that icons are shown in menus (especially on macOS)
|
35
38
|
QApplication.setAttribute(Qt.AA_DontShowIconsInMenus, False)
|
36
39
|
|
@@ -173,6 +176,10 @@ class MaterialIconAction(ToolBarAction):
|
|
173
176
|
filled=self.filled,
|
174
177
|
color=self.color,
|
175
178
|
)
|
179
|
+
if parent is None:
|
180
|
+
logger.warning(
|
181
|
+
"MaterialIconAction was created without a parent. Please consider adding one. Using None as parent may cause issues."
|
182
|
+
)
|
176
183
|
self.action = QAction(icon=self.icon, text=self.tooltip, parent=parent)
|
177
184
|
self.action.setCheckable(self.checkable)
|
178
185
|
|
@@ -79,7 +79,7 @@ class DeviceSignalInputBase(BECWidget):
|
|
79
79
|
@Slot(str)
|
80
80
|
def set_device(self, device: str | None):
|
81
81
|
"""
|
82
|
-
Set the device. If device is not valid, device will be set to None which
|
82
|
+
Set the device. If device is not valid, device will be set to None which happens
|
83
83
|
|
84
84
|
Args:
|
85
85
|
device(str): device name.
|
@@ -112,9 +112,12 @@ class DeviceSignalInputBase(BECWidget):
|
|
112
112
|
# See above convention for Signals and ComputedSignals
|
113
113
|
if isinstance(device, Signal):
|
114
114
|
self._signals = [self._device]
|
115
|
-
|
115
|
+
self._hinted_signals = [self._device]
|
116
|
+
self._normal_signals = []
|
117
|
+
self._config_signals = []
|
118
|
+
FilterIO.set_selection(widget=self, selection=self._signals)
|
116
119
|
return
|
117
|
-
device_info = device._info
|
120
|
+
device_info = device._info.get("signals", {})
|
118
121
|
|
119
122
|
def _update(kind: Kind):
|
120
123
|
return [
|
@@ -22,10 +22,14 @@ class DeviceComboBox(DeviceInputBase, QComboBox):
|
|
22
22
|
config: Device input configuration.
|
23
23
|
gui_id: GUI ID.
|
24
24
|
device_filter: Device filter, name of the device class from BECDeviceFilter and BECReadoutPriority. Check DeviceInputBase for more details.
|
25
|
+
readout_priority_filter: Readout priority filter, name of the readout priority class from BECDeviceFilter and BECReadoutPriority. Check DeviceInputBase for more details.
|
26
|
+
available_devices: List of available devices, if passed, it sets apply filters to false and device/readout priority filters will not be applied.
|
25
27
|
default: Default device name.
|
26
28
|
arg_name: Argument name, can be used for the other widgets which has to call some other function in bec using correct argument names.
|
27
29
|
"""
|
28
30
|
|
31
|
+
USER_ACCESS = ["set_device", "devices"]
|
32
|
+
|
29
33
|
ICON_NAME = "list_alt"
|
30
34
|
PLUGIN = True
|
31
35
|
|
@@ -24,11 +24,15 @@ class DeviceLineEdit(DeviceInputBase, QLineEdit):
|
|
24
24
|
client: BEC client object.
|
25
25
|
config: Device input configuration.
|
26
26
|
gui_id: GUI ID.
|
27
|
-
device_filter: Device filter, name of the device class from BECDeviceFilter and
|
27
|
+
device_filter: Device filter, name of the device class from BECDeviceFilter and BECReadoutPriority. Check DeviceInputBase for more details.
|
28
|
+
readout_priority_filter: Readout priority filter, name of the readout priority class from BECDeviceFilter and BECReadoutPriority. Check DeviceInputBase for more details.
|
29
|
+
available_devices: List of available devices, if passed, it sets apply filters to false and device/readout priority filters will not be applied.
|
28
30
|
default: Default device name.
|
29
31
|
arg_name: Argument name, can be used for the other widgets which has to call some other function in bec using correct argument names.
|
30
32
|
"""
|
31
33
|
|
34
|
+
USER_ACCESS = ["set_device", "devices", "_is_valid_input"]
|
35
|
+
|
32
36
|
device_selected = Signal(str)
|
33
37
|
device_config_update = Signal()
|
34
38
|
|
@@ -51,7 +55,7 @@ class DeviceLineEdit(DeviceInputBase, QLineEdit):
|
|
51
55
|
**kwargs,
|
52
56
|
):
|
53
57
|
self._callback_id = None
|
54
|
-
self.
|
58
|
+
self.__is_valid_input = False
|
55
59
|
self._accent_colors = get_accent_colors()
|
56
60
|
super().__init__(parent=parent, client=client, gui_id=gui_id, config=config, **kwargs)
|
57
61
|
self.completer = QCompleter(self)
|
@@ -95,6 +99,20 @@ class DeviceLineEdit(DeviceInputBase, QLineEdit):
|
|
95
99
|
self.textChanged.connect(self.check_validity)
|
96
100
|
self.check_validity(self.text())
|
97
101
|
|
102
|
+
@property
|
103
|
+
def _is_valid_input(self) -> bool:
|
104
|
+
"""
|
105
|
+
Check if the current value is a valid device name.
|
106
|
+
|
107
|
+
Returns:
|
108
|
+
bool: True if the current value is a valid device name, False otherwise.
|
109
|
+
"""
|
110
|
+
return self.__is_valid_input
|
111
|
+
|
112
|
+
@_is_valid_input.setter
|
113
|
+
def _is_valid_input(self, value: bool) -> None:
|
114
|
+
self.__is_valid_input = value
|
115
|
+
|
98
116
|
def on_device_update(self, action: str, content: dict) -> None:
|
99
117
|
"""
|
100
118
|
Callback for device update events. Triggers the device_update signal.
|
@@ -23,8 +23,11 @@ class SignalComboBox(DeviceSignalInputBase, QComboBox):
|
|
23
23
|
arg_name: Argument name, can be used for the other widgets which has to call some other function in bec using correct argument names.
|
24
24
|
"""
|
25
25
|
|
26
|
+
USER_ACCESS = ["set_signal", "set_device", "signals"]
|
27
|
+
|
26
28
|
ICON_NAME = "list_alt"
|
27
29
|
PLUGIN = True
|
30
|
+
RPC = True
|
28
31
|
|
29
32
|
device_signal_changed = Signal(str)
|
30
33
|
|
@@ -24,9 +24,12 @@ class SignalLineEdit(DeviceSignalInputBase, QLineEdit):
|
|
24
24
|
arg_name: Argument name, can be used for the other widgets which has to call some other function in bec using correct argument names.
|
25
25
|
"""
|
26
26
|
|
27
|
+
USER_ACCESS = ["_is_valid_input", "set_signal", "set_device", "signals"]
|
28
|
+
|
27
29
|
device_signal_changed = Signal(str)
|
28
30
|
|
29
31
|
PLUGIN = True
|
32
|
+
RPC = True
|
30
33
|
ICON_NAME = "vital_signs"
|
31
34
|
|
32
35
|
def __init__(
|
@@ -41,7 +44,7 @@ class SignalLineEdit(DeviceSignalInputBase, QLineEdit):
|
|
41
44
|
arg_name: str | None = None,
|
42
45
|
**kwargs,
|
43
46
|
):
|
44
|
-
self.
|
47
|
+
self.__is_valid_input = False
|
45
48
|
super().__init__(parent=parent, client=client, gui_id=gui_id, config=config, **kwargs)
|
46
49
|
self._accent_colors = get_accent_colors()
|
47
50
|
self.completer = QCompleter(self)
|
@@ -65,8 +68,22 @@ class SignalLineEdit(DeviceSignalInputBase, QLineEdit):
|
|
65
68
|
self.set_device(device)
|
66
69
|
if default is not None:
|
67
70
|
self.set_signal(default)
|
68
|
-
self.textChanged.connect(self.
|
69
|
-
self.
|
71
|
+
self.textChanged.connect(self.check_validity)
|
72
|
+
self.check_validity(self.text())
|
73
|
+
|
74
|
+
@property
|
75
|
+
def _is_valid_input(self) -> bool:
|
76
|
+
"""
|
77
|
+
Check if the current value is a valid device name.
|
78
|
+
|
79
|
+
Returns:
|
80
|
+
bool: True if the current value is a valid device name, False otherwise.
|
81
|
+
"""
|
82
|
+
return self.__is_valid_input
|
83
|
+
|
84
|
+
@_is_valid_input.setter
|
85
|
+
def _is_valid_input(self, value: bool) -> None:
|
86
|
+
self.__is_valid_input = value
|
70
87
|
|
71
88
|
def get_current_device(self) -> object:
|
72
89
|
"""
|
@@ -131,6 +148,9 @@ if __name__ == "__main__": # pragma: no cover
|
|
131
148
|
from qtpy.QtWidgets import QApplication, QVBoxLayout, QWidget
|
132
149
|
|
133
150
|
from bec_widgets.utils.colors import set_theme
|
151
|
+
from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import (
|
152
|
+
DeviceComboBox,
|
153
|
+
)
|
134
154
|
|
135
155
|
app = QApplication([])
|
136
156
|
set_theme("dark")
|
@@ -138,6 +158,12 @@ if __name__ == "__main__": # pragma: no cover
|
|
138
158
|
widget.setFixedSize(200, 200)
|
139
159
|
layout = QVBoxLayout()
|
140
160
|
widget.setLayout(layout)
|
141
|
-
|
161
|
+
device_line_edit = DeviceComboBox()
|
162
|
+
device_line_edit.filter_to_positioner = True
|
163
|
+
signal_line_edit = SignalLineEdit()
|
164
|
+
device_line_edit.device_selected.connect(signal_line_edit.set_device)
|
165
|
+
|
166
|
+
layout.addWidget(device_line_edit)
|
167
|
+
layout.addWidget(signal_line_edit)
|
142
168
|
widget.show()
|
143
169
|
app.exec_()
|
@@ -11,18 +11,31 @@ class ImageProcessingToolbarBundle(ToolbarBundle):
|
|
11
11
|
super().__init__(bundle_id=bundle_id, actions=[], **kwargs)
|
12
12
|
self.target_widget = target_widget
|
13
13
|
|
14
|
-
self.fft = MaterialIconAction(
|
15
|
-
|
14
|
+
self.fft = MaterialIconAction(
|
15
|
+
icon_name="fft", tooltip="Toggle FFT", checkable=True, parent=self.target_widget
|
16
|
+
)
|
17
|
+
self.log = MaterialIconAction(
|
18
|
+
icon_name="log_scale", tooltip="Toggle Log", checkable=True, parent=self.target_widget
|
19
|
+
)
|
16
20
|
self.transpose = MaterialIconAction(
|
17
|
-
icon_name="transform",
|
21
|
+
icon_name="transform",
|
22
|
+
tooltip="Transpose Image",
|
23
|
+
checkable=True,
|
24
|
+
parent=self.target_widget,
|
18
25
|
)
|
19
26
|
self.right = MaterialIconAction(
|
20
|
-
icon_name="rotate_right",
|
27
|
+
icon_name="rotate_right",
|
28
|
+
tooltip="Rotate image clockwise by 90 deg",
|
29
|
+
parent=self.target_widget,
|
21
30
|
)
|
22
31
|
self.left = MaterialIconAction(
|
23
|
-
icon_name="rotate_left",
|
32
|
+
icon_name="rotate_left",
|
33
|
+
tooltip="Rotate image counterclockwise by 90 deg",
|
34
|
+
parent=self.target_widget,
|
35
|
+
)
|
36
|
+
self.reset = MaterialIconAction(
|
37
|
+
icon_name="reset_settings", tooltip="Reset Image Settings", parent=self.target_widget
|
24
38
|
)
|
25
|
-
self.reset = MaterialIconAction(icon_name="reset_settings", tooltip="Reset Image Settings")
|
26
39
|
|
27
40
|
self.add_action("fft", self.fft)
|
28
41
|
self.add_action("log", self.log)
|
@@ -112,8 +112,10 @@ class PlotBase(BECWidget, QWidget):
|
|
112
112
|
self.fps_label = QLabel(alignment=Qt.AlignmentFlag.AlignRight)
|
113
113
|
self._user_x_label = ""
|
114
114
|
self._x_label_suffix = ""
|
115
|
+
self._x_axis_units = ""
|
115
116
|
self._user_y_label = ""
|
116
117
|
self._y_label_suffix = ""
|
118
|
+
self._y_axis_units = ""
|
117
119
|
|
118
120
|
# Plot Indicator Items
|
119
121
|
self.tick_item = BECTickItem(parent=self, plot_item=self.plot_item)
|
@@ -473,12 +475,31 @@ class PlotBase(BECWidget, QWidget):
|
|
473
475
|
self._x_label_suffix = suffix
|
474
476
|
self._apply_x_label()
|
475
477
|
|
478
|
+
@property
|
479
|
+
def x_label_units(self) -> str:
|
480
|
+
"""
|
481
|
+
The units of the x-axis.
|
482
|
+
"""
|
483
|
+
return self._x_axis_units
|
484
|
+
|
485
|
+
@x_label_units.setter
|
486
|
+
def x_label_units(self, units: str):
|
487
|
+
"""
|
488
|
+
The units of the x-axis.
|
489
|
+
|
490
|
+
Args:
|
491
|
+
units(str): The units to set.
|
492
|
+
"""
|
493
|
+
self._x_axis_units = units
|
494
|
+
self._apply_x_label()
|
495
|
+
|
476
496
|
@property
|
477
497
|
def x_label_combined(self) -> str:
|
478
498
|
"""
|
479
|
-
The final label shown on the axis = user portion + suffix.
|
499
|
+
The final label shown on the axis = user portion + suffix + [units].
|
480
500
|
"""
|
481
|
-
|
501
|
+
units = f" [{self._x_axis_units}]" if self._x_axis_units else ""
|
502
|
+
return self._user_x_label + self._x_label_suffix + units
|
482
503
|
|
483
504
|
def _apply_x_label(self):
|
484
505
|
"""
|
@@ -521,12 +542,31 @@ class PlotBase(BECWidget, QWidget):
|
|
521
542
|
self._y_label_suffix = suffix
|
522
543
|
self._apply_y_label()
|
523
544
|
|
545
|
+
@property
|
546
|
+
def y_label_units(self) -> str:
|
547
|
+
"""
|
548
|
+
The units of the y-axis.
|
549
|
+
"""
|
550
|
+
return self._y_axis_units
|
551
|
+
|
552
|
+
@y_label_units.setter
|
553
|
+
def y_label_units(self, units: str):
|
554
|
+
"""
|
555
|
+
The units of the y-axis.
|
556
|
+
|
557
|
+
Args:
|
558
|
+
units(str): The units to set.
|
559
|
+
"""
|
560
|
+
self._y_axis_units = units
|
561
|
+
self._apply_y_label()
|
562
|
+
|
524
563
|
@property
|
525
564
|
def y_label_combined(self) -> str:
|
526
565
|
"""
|
527
|
-
The final y label shown on the axis = user portion + suffix.
|
566
|
+
The final y label shown on the axis = user portion + suffix + [units].
|
528
567
|
"""
|
529
|
-
|
568
|
+
units = f" [{self._y_axis_units}]" if self._y_axis_units else ""
|
569
|
+
return self._user_y_label + self._y_label_suffix + units
|
530
570
|
|
531
571
|
def _apply_y_label(self):
|
532
572
|
"""
|
@@ -1468,7 +1468,7 @@ class Waveform(PlotBase):
|
|
1468
1468
|
x_data = data.get(x_name, {}).get(x_entry, {}).get(access_key, [0])
|
1469
1469
|
else: # history data
|
1470
1470
|
x_data = data.get(x_name, {}).get(x_entry, {}).read().get("value", [0])
|
1471
|
-
new_suffix = f"
|
1471
|
+
new_suffix = f" (custom: {x_name}-{x_entry})"
|
1472
1472
|
|
1473
1473
|
# 2 User wants timestamp
|
1474
1474
|
if self.x_axis_mode["name"] == "timestamp":
|
@@ -1477,19 +1477,19 @@ class Waveform(PlotBase):
|
|
1477
1477
|
else: # history data
|
1478
1478
|
timestamps = data[device_name][device_entry].read().get("timestamp", [0])
|
1479
1479
|
x_data = timestamps
|
1480
|
-
new_suffix = "
|
1480
|
+
new_suffix = " (timestamp)"
|
1481
1481
|
|
1482
1482
|
# 3 User wants index
|
1483
1483
|
if self.x_axis_mode["name"] == "index":
|
1484
1484
|
x_data = None
|
1485
|
-
new_suffix = "
|
1485
|
+
new_suffix = " (index)"
|
1486
1486
|
|
1487
1487
|
# 4 Best effort automatic mode
|
1488
1488
|
if self.x_axis_mode["name"] is None or self.x_axis_mode["name"] == "auto":
|
1489
1489
|
# 4.1 If there are async curves, use index
|
1490
1490
|
if len(self._async_curves) > 0:
|
1491
1491
|
x_data = None
|
1492
|
-
new_suffix = "
|
1492
|
+
new_suffix = " (auto: index)"
|
1493
1493
|
# 4.2 If there are sync curves, use the first device from the scan report
|
1494
1494
|
else:
|
1495
1495
|
try:
|
@@ -1503,7 +1503,7 @@ class Waveform(PlotBase):
|
|
1503
1503
|
x_data = data.get(x_name, {}).get(x_entry, {}).get(access_key, None)
|
1504
1504
|
else:
|
1505
1505
|
x_data = data.get(x_name, {}).get(x_entry, {}).read().get("value", None)
|
1506
|
-
new_suffix = f"
|
1506
|
+
new_suffix = f" (auto: {x_name}-{x_entry})"
|
1507
1507
|
self._update_x_label_suffix(new_suffix)
|
1508
1508
|
return x_data
|
1509
1509
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|