bec-widgets 2.6.0__tar.gz → 2.7.1__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.6.0 → bec_widgets-2.7.1}/CHANGELOG.md +38 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/PKG-INFO +1 -1
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/client.py +116 -4
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/tests/utils.py +7 -1
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/crosshair.py +35 -11
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +6 -3
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +4 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +20 -2
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +3 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +30 -4
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/image.py +147 -11
- bec_widgets-2.7.1/bec_widgets/widgets/plots/image/image_roi_plot.py +37 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py +4 -3
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/toolbar_bundles/mouse_interactions.py +1 -1
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/pyproject.toml +1 -1
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.git_hooks/pre-commit +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/actions/bw_install/action.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/pull_request_template.md +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/scripts/pr_issue_sync/pr_issue_sync.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/scripts/pr_issue_sync/requirements.txt +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/check_pr.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/ci.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/end2end-conda.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/formatter.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/generate-cli-check.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/pytest-matrix.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/pytest.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/semantic_release.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.github/workflows/sync-issues-pr.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.gitignore +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.gitlab-ci.yml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.pylintrc +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/.readthedocs.yaml +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/LICENSE +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/README.md +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/applications/bw_launch.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/applications/launch_window.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/assets/app_icons/auto_update.png +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/rpc/rpc_register.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/bec_plugin_helper.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/compact_popup.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/error_popups.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/expandable_frame.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/forms_from_types/forms.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/forms_from_types/items.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/name_utils.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/palette_viewer.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/redis_message_waiter.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/round_frame.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/rpc_server.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/serialization.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/settings_dialog.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/side_panel.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/toolbar.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/dock/dock.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/console/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/console/console.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/console/register_console.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/web_console/register_web_console.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/web_console/web_console.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/web_console/web_console.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/web_console/web_console_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/website/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/image_item.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/register_image.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/setting_widgets/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/settings/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/motor_selection.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/settings/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/plot_base.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/roi/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/settings/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/setting_menus/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/toolbar_bundles/plot_export.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/toolbar_bundles/roi_bundle.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/toolbar_bundles/save_state.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/settings/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/settings/curve_settings/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/utils/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/waveform.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinbox/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button_native/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-2.6.0 → bec_widgets-2.7.1}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,44 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v2.7.1 (2025-05-26)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **signal-combobox**: Bug fix in signal combobox that crashed upon switching from device to signal
|
9
|
+
input
|
10
|
+
([`1a4eb1d`](https://github.com/bec-project/bec_widgets/commit/1a4eb1db67ff6cfc45ce91cd264ae2818a57230a))
|
11
|
+
|
12
|
+
- **signal-line-edit**: Fix signal_line_edit validity check; closes #610
|
13
|
+
([`ec740d3`](https://github.com/bec-project/bec_widgets/commit/ec740d31fdea561f1ed9274ea79b7be3b6ecba11))
|
14
|
+
|
15
|
+
### Refactoring
|
16
|
+
|
17
|
+
- Add rpc interface to signal_line_edit/combobox; add user access methods
|
18
|
+
([`a8811c9`](https://github.com/bec-project/bec_widgets/commit/a8811c9d914feacf08f2f1f1aaf16302cd320ba3))
|
19
|
+
|
20
|
+
### Testing
|
21
|
+
|
22
|
+
- **input-widgets**: Add e2e tests to test widget inputs with demo config of bec.
|
23
|
+
([`f57950c`](https://github.com/bec-project/bec_widgets/commit/f57950c4e3b0b5eab7bc303eaead89f7e50e2804))
|
24
|
+
|
25
|
+
|
26
|
+
## v2.7.0 (2025-05-26)
|
27
|
+
|
28
|
+
### Bug Fixes
|
29
|
+
|
30
|
+
- **image/image_selecetion**: Toolbar selection tool size adjusted
|
31
|
+
([`e12e9e5`](https://github.com/bec-project/bec_widgets/commit/e12e9e534d6913223b741bff31bed6674ae4c0e6))
|
32
|
+
|
33
|
+
- **plot_base/mouse_interactions.py**: Fixed parent
|
34
|
+
([`66e9445`](https://github.com/bec-project/bec_widgets/commit/66e9445760f2796c008d08feba54c3d48e4a9cfb))
|
35
|
+
|
36
|
+
### Features
|
37
|
+
|
38
|
+
- **image**: Roi plots with crosshair cuts added
|
39
|
+
([`ce88787`](https://github.com/bec-project/bec_widgets/commit/ce88787e881d12384dd3a25b75fadda1f2280c81))
|
40
|
+
|
41
|
+
|
4
42
|
## v2.6.0 (2025-05-26)
|
5
43
|
|
6
44
|
### 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
|
|
@@ -85,7 +85,8 @@ class Crosshair(QObject):
|
|
85
85
|
self.items = []
|
86
86
|
self.marker_moved_1d = {}
|
87
87
|
self.marker_clicked_1d = {}
|
88
|
-
self.
|
88
|
+
self.marker_2d_row = None
|
89
|
+
self.marker_2d_col = None
|
89
90
|
self.update_markers()
|
90
91
|
self.check_log()
|
91
92
|
self.check_derivatives()
|
@@ -195,13 +196,23 @@ class Crosshair(QObject):
|
|
195
196
|
marker_clicked_list.append(marker_clicked)
|
196
197
|
self.marker_clicked_1d[name] = marker_clicked_list
|
197
198
|
elif isinstance(item, pg.ImageItem): # 2D plot
|
198
|
-
if self.
|
199
|
+
if self.marker_2d_row is not None and self.marker_2d_col is not None:
|
199
200
|
continue
|
200
|
-
|
201
|
-
|
201
|
+
# Create horizontal ROI for row highlighting
|
202
|
+
if item.image is None:
|
203
|
+
continue
|
204
|
+
self.marker_2d_row = pg.ROI(
|
205
|
+
[0, 0], size=[item.image.shape[0], 1], pen=pg.mkPen("r", width=2), movable=False
|
206
|
+
)
|
207
|
+
self.marker_2d_row.skip_auto_range = True
|
208
|
+
self.plot_item.addItem(self.marker_2d_row)
|
209
|
+
|
210
|
+
# Create vertical ROI for column highlighting
|
211
|
+
self.marker_2d_col = pg.ROI(
|
212
|
+
[0, 0], size=[1, item.image.shape[1]], pen=pg.mkPen("r", width=2), movable=False
|
202
213
|
)
|
203
|
-
self.
|
204
|
-
self.plot_item.addItem(self.
|
214
|
+
self.marker_2d_col.skip_auto_range = True
|
215
|
+
self.plot_item.addItem(self.marker_2d_col)
|
205
216
|
|
206
217
|
def snap_to_data(
|
207
218
|
self, x: float, y: float
|
@@ -243,6 +254,8 @@ class Crosshair(QObject):
|
|
243
254
|
elif isinstance(item, pg.ImageItem): # 2D plot
|
244
255
|
name = item.config.monitor or str(id(item))
|
245
256
|
image_2d = item.image
|
257
|
+
if image_2d is None:
|
258
|
+
continue
|
246
259
|
# Clip the x and y values to the image dimensions to avoid out of bounds errors
|
247
260
|
y_values[name] = int(np.clip(y, 0, image_2d.shape[1] - 1))
|
248
261
|
x_values[name] = int(np.clip(x, 0, image_2d.shape[0] - 1))
|
@@ -330,7 +343,10 @@ class Crosshair(QObject):
|
|
330
343
|
x, y = x_snap_values[name], y_snap_values[name]
|
331
344
|
if x is None or y is None:
|
332
345
|
continue
|
333
|
-
|
346
|
+
# Set position of horizontal ROI (row)
|
347
|
+
self.marker_2d_row.setPos([0, y])
|
348
|
+
# Set position of vertical ROI (column)
|
349
|
+
self.marker_2d_col.setPos([x, 0])
|
334
350
|
coordinate_to_emit = (name, x, y)
|
335
351
|
self.coordinatesChanged2D.emit(coordinate_to_emit)
|
336
352
|
else:
|
@@ -384,7 +400,10 @@ class Crosshair(QObject):
|
|
384
400
|
x, y = x_snap_values[name], y_snap_values[name]
|
385
401
|
if x is None or y is None:
|
386
402
|
continue
|
387
|
-
|
403
|
+
# Set position of horizontal ROI (row)
|
404
|
+
self.marker_2d_row.setPos([0, y])
|
405
|
+
# Set position of vertical ROI (column)
|
406
|
+
self.marker_2d_col.setPos([x, 0])
|
388
407
|
coordinate_to_emit = (name, x, y)
|
389
408
|
self.coordinatesClicked2D.emit(coordinate_to_emit)
|
390
409
|
else:
|
@@ -428,6 +447,8 @@ class Crosshair(QObject):
|
|
428
447
|
for item in self.items:
|
429
448
|
if isinstance(item, pg.ImageItem):
|
430
449
|
image = item.image
|
450
|
+
if image is None:
|
451
|
+
continue
|
431
452
|
ix = int(np.clip(x, 0, image.shape[0] - 1))
|
432
453
|
iy = int(np.clip(y, 0, image.shape[1] - 1))
|
433
454
|
intensity = image[ix, iy]
|
@@ -450,9 +471,12 @@ class Crosshair(QObject):
|
|
450
471
|
self.clear_markers()
|
451
472
|
|
452
473
|
def cleanup(self):
|
453
|
-
if self.
|
454
|
-
self.plot_item.removeItem(self.
|
455
|
-
self.
|
474
|
+
if self.marker_2d_row is not None:
|
475
|
+
self.plot_item.removeItem(self.marker_2d_row)
|
476
|
+
self.marker_2d_row = None
|
477
|
+
if self.marker_2d_col is not None:
|
478
|
+
self.plot_item.removeItem(self.marker_2d_col)
|
479
|
+
self.marker_2d_col = None
|
456
480
|
self.plot_item.removeItem(self.v_line)
|
457
481
|
self.plot_item.removeItem(self.h_line)
|
458
482
|
self.plot_item.removeItem(self.coord_label)
|
@@ -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_()
|