bec-widgets 1.3.3__tar.gz → 1.4.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-1.4.0/CHANGELOG.md +209 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/PKG-INFO +1 -2
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/crosshair.py +134 -33
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/plot_base.py +4 -4
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/pyproject.toml +1 -1
- bec_widgets-1.3.3/CHANGELOG.md +0 -170
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.git_hooks/pre-commit +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.gitignore +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.gitlab/merge_request_templates/default.md +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.gitlab-ci.yml +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.pylintrc +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/.readthedocs.yaml +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/LICENSE +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/README.md +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/applications/bec_app.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/auto_updates.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/client.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/rpc_register.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/qt_utils/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/qt_utils/compact_popup.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/qt_utils/error_popups.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/qt_utils/palette_viewer.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/qt_utils/toolbar.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/tests/utils.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/base_classes/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/base_classes/device_signal_input_base.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/button_abort.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/register_abort_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/button_reset.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/register_reset_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/button_resume.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/register_resume_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/color_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/console/console.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/console/console.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/console/console_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/console/register_console.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/register_device_browser.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock_area.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/figure.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/image/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/image/image_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/positioner_group.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/register_signal_combobox.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/signal_combobox.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/signal_combobox.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/signal_combobox_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/register_signal_line_edit.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/spinner.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/text_box.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/toggle.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/vscode.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/website/__init__.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/website/register_website_widget.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/website/website.py +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
- {bec_widgets-1.3.3 → bec_widgets-1.4.0}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
@@ -0,0 +1,209 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
|
4
|
+
## v1.4.0 (2024-11-11)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **crosshair**: Label of coordinates of TextItem displays numbers in general format
|
9
|
+
([`11e5937`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/11e5937ae0f3c1413acd4e66878a692ebe4ef7d0))
|
10
|
+
|
11
|
+
- **crosshair**: Label of coordinates of TextItem is updated according to the current theme of qapp
|
12
|
+
([`4f31ea6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f31ea655cf6190e141e6a2720a2d6da517a2b5b))
|
13
|
+
|
14
|
+
- **crosshair**: Log is separately scaled for backend logic and for signal emit
|
15
|
+
([`b2eb71a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b2eb71aae0b6a7c82158f2d150ae1e31411cfdeb))
|
16
|
+
|
17
|
+
### Features
|
18
|
+
|
19
|
+
- **crosshair**: Textitem to display crosshair coordinates
|
20
|
+
([`035136d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/035136d5171ec5f4311d15a9aa5bad2bdbc1f6cb))
|
21
|
+
|
22
|
+
### Testing
|
23
|
+
|
24
|
+
- **crosshair**: Tests extended
|
25
|
+
([`64df805`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/64df805a9ed92bb97e580ac3bc0a1bbd2b1cb81e))
|
26
|
+
|
27
|
+
|
28
|
+
## v1.3.3 (2024-11-07)
|
29
|
+
|
30
|
+
### Bug Fixes
|
31
|
+
|
32
|
+
- **scan_control**: Devicelineedit kwargs readings changed to get name of the positioner
|
33
|
+
([`5fabd4b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5fabd4bea95bafd2352102686357cc1db80813fd))
|
34
|
+
|
35
|
+
### Documentation
|
36
|
+
|
37
|
+
- Update outdated text in docs
|
38
|
+
([`4f0693c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f0693cae34b391d75884837e1ae6353a0501868))
|
39
|
+
|
40
|
+
|
41
|
+
## v1.3.2 (2024-11-05)
|
42
|
+
|
43
|
+
### Bug Fixes
|
44
|
+
|
45
|
+
- **plot_base**: Legend text color is changed when changing dark-light theme
|
46
|
+
([`2304c9f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2304c9f8497c1ab1492f3e6690bb79b0464c0df8))
|
47
|
+
|
48
|
+
### Build System
|
49
|
+
|
50
|
+
- Pyside6 version fixed 6.7.2
|
51
|
+
([`c6e48ec`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c6e48ec1fe5aaee6a7c7a6f930f1520cd439cdb2))
|
52
|
+
|
53
|
+
|
54
|
+
## v1.3.1 (2024-10-31)
|
55
|
+
|
56
|
+
### Bug Fixes
|
57
|
+
|
58
|
+
- **ophyd_kind_util**: Kind enums are imported from the bec widget util class
|
59
|
+
([`940ee65`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/940ee6552c1ee8d9b4e4a74c62351f2e133ab678))
|
60
|
+
|
61
|
+
|
62
|
+
## v1.3.0 (2024-10-30)
|
63
|
+
|
64
|
+
### Bug Fixes
|
65
|
+
|
66
|
+
- **colors**: Extend color map validation for matplotlib and colorcet maps (if available)
|
67
|
+
([`14dd8c5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/14dd8c5b2947c92f6643b888d71975e4e8d4ee88))
|
68
|
+
|
69
|
+
### Features
|
70
|
+
|
71
|
+
- **colormap_button**: Colormap button with menu to select colormap filtered by the colormap type
|
72
|
+
([`b039933`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b039933405e2fbe92bd81bd0748e79e8d443a741))
|
73
|
+
|
74
|
+
|
75
|
+
## v1.2.0 (2024-10-25)
|
76
|
+
|
77
|
+
### Features
|
78
|
+
|
79
|
+
- **colors**: Evenly spaced color generation + new golden ratio calculation
|
80
|
+
([`40c9fea`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/40c9fea35f869ef52e05948dd1989bcd99f602e0))
|
81
|
+
|
82
|
+
### Refactoring
|
83
|
+
|
84
|
+
- Add bec_lib version to statusbox
|
85
|
+
([`5d4b86e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5d4b86e1c6e1800051afce4f991153e370767fa6))
|
86
|
+
|
87
|
+
|
88
|
+
## v1.1.0 (2024-10-25)
|
89
|
+
|
90
|
+
### Features
|
91
|
+
|
92
|
+
- Add filter i/o utility class
|
93
|
+
([`0350833`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0350833f36e0a7cadce4173f9b1d1fbfdf985375))
|
94
|
+
|
95
|
+
### Refactoring
|
96
|
+
|
97
|
+
- Do not flush selection upon receiving config update; allow widgetIO to receive kwargs to be able
|
98
|
+
to use get_value to receive string instead of int for QComboBox
|
99
|
+
([`91959e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/91959e82de8586934af3ebb5aaa0923930effc51))
|
100
|
+
|
101
|
+
- Allow to set selection in DeviceInput; automatic update of selection on device config update;
|
102
|
+
cleanup
|
103
|
+
([`5eb15b7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5eb15b785f12e30eb8ccbc56d4ad9e759a4cf5eb))
|
104
|
+
|
105
|
+
- Cleanup, added device_signal for signal inputs
|
106
|
+
([`6fb2055`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6fb20552ff57978f4aeb79fd7f062f8d6b5581e7))
|
107
|
+
|
108
|
+
### Testing
|
109
|
+
|
110
|
+
- **scan_control**: Tests added for grid_scan to ensure scan_args signal validity
|
111
|
+
([`acb7902`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/acb79020d4be546efc001ff47b6f5cdba2ee9375))
|
112
|
+
|
113
|
+
|
114
|
+
## v1.0.2 (2024-10-22)
|
115
|
+
|
116
|
+
### Bug Fixes
|
117
|
+
|
118
|
+
- **scan_control**: Scan args signal fixed to emit list instead of hardcoded structure
|
119
|
+
([`4f5448c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f5448cf51a204e077af162c7f0aed1f1a60e57a))
|
120
|
+
|
121
|
+
|
122
|
+
## v1.0.1 (2024-10-22)
|
123
|
+
|
124
|
+
### Bug Fixes
|
125
|
+
|
126
|
+
- **waveform**: Added support for live_data and data access
|
127
|
+
([`7469c89`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7469c892c8076fc09e61f173df6920c551241cec))
|
128
|
+
|
129
|
+
|
130
|
+
## v1.0.0 (2024-10-18)
|
131
|
+
|
132
|
+
### Bug Fixes
|
133
|
+
|
134
|
+
- **crosshair**: Downsample clear markers
|
135
|
+
([`f9a889f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f9a889fc6d380b9e587edcb465203122ea0bffc1))
|
136
|
+
|
137
|
+
### Features
|
138
|
+
|
139
|
+
- Ability to disable scatter from waveform & compatible crosshair with down sampling
|
140
|
+
([`2ab12ed`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2ab12ed60abb995abc381d9330fdcf399796d9e5))
|
141
|
+
|
142
|
+
|
143
|
+
## v0.119.0 (2024-10-17)
|
144
|
+
|
145
|
+
### Bug Fixes
|
146
|
+
|
147
|
+
- Fix syntax due to change of api for simulated devices
|
148
|
+
([`19f4e40`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/19f4e407e00ee242973ca4c3f90e4e41a4d3e315))
|
149
|
+
|
150
|
+
- Remove wrongly scoped test
|
151
|
+
([`a23841b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a23841b2553dc7162da943715d58275c7dc39ed9))
|
152
|
+
|
153
|
+
- Rename 'compact' property -> 'compact_view'
|
154
|
+
([`6982711`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6982711fea5fb8a73845ed7c0692e3ec53ef7871))
|
155
|
+
|
156
|
+
- Alignment 1D update, make app window a main window (in .ui file)
|
157
|
+
([`0015f0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0015f0e2d62adc02d3ef334e1f6dbb2d0288fec6))
|
158
|
+
|
159
|
+
- Set (Minimum, Fixed) size policy on Stop button
|
160
|
+
([`523cc43`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/523cc435725b10b7d59a4477a1aaa24a1f3e37a2))
|
161
|
+
|
162
|
+
### Features
|
163
|
+
|
164
|
+
- New PositionerGroup widget
|
165
|
+
([`af9655d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/af9655de0c541092437accfbaa779628a2f48ccb))
|
166
|
+
|
167
|
+
- Add 'expand_popup' property to CompactPopupWidget
|
168
|
+
([`e4121a0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e4121a01cb6b8d496e630cd43bc642b994b8f310))
|
169
|
+
|
170
|
+
This property tells if expand should show a popup (by default), or if the widget should expand
|
171
|
+
in-place
|
172
|
+
|
173
|
+
- Positionerbox with a popup view
|
174
|
+
([`2615787`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/261578796f1de8ca9cab9b91659bc1484f7aa89d))
|
175
|
+
|
176
|
+
- Emit 'device_selected' and 'scan_axis' from scan control widget
|
177
|
+
([`0b9b1a3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0b9b1a3c89a98505079f7d4078915b7bbfaa1e23))
|
178
|
+
|
179
|
+
- New 'device_selected' signals to ScanControl, ScanGroupBox, DeviceLineEdit
|
180
|
+
([`9801d27`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9801d2769eb0ee95c94ec0c011e1dac1407142ae))
|
181
|
+
|
182
|
+
### Refactoring
|
183
|
+
|
184
|
+
- Redesign of scan selection and scan control boxes
|
185
|
+
([`a69d287`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a69d2870e2b3539739781d741b27b8599c0f4abd))
|
186
|
+
|
187
|
+
- Move add/remove bundle to scan group box
|
188
|
+
([`e3d0a7b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e3d0a7bbf9918dc16eb7227a178c310256ce570d))
|
189
|
+
|
190
|
+
|
191
|
+
## v0.118.0 (2024-10-13)
|
192
|
+
|
193
|
+
### Documentation
|
194
|
+
|
195
|
+
- **sphinx-build**: Adjusted pyside verion
|
196
|
+
([`b236951`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b23695167ab969f754a058ffdccca2b40f00a008))
|
197
|
+
|
198
|
+
### Features
|
199
|
+
|
200
|
+
- **image**: Image widget can take data from monitor_1d endpoint
|
201
|
+
([`9ef1d1c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9ef1d1c9ac2178d9fa2e655942208f8abbdf5c1b))
|
202
|
+
|
203
|
+
|
204
|
+
## v0.117.1 (2024-10-11)
|
205
|
+
|
206
|
+
### Bug Fixes
|
207
|
+
|
208
|
+
- **FPS**: Qtimer cleanup leaking
|
209
|
+
([`3a22392`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3a2239278075de7489ad10a58c31d7d89715e221))
|
@@ -1,10 +1,9 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: bec_widgets
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.4.0
|
4
4
|
Summary: BEC Widgets
|
5
5
|
Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
|
6
6
|
Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
|
7
|
-
License-File: LICENSE
|
8
7
|
Classifier: Development Status :: 3 - Alpha
|
9
8
|
Classifier: Programming Language :: Python :: 3
|
10
9
|
Classifier: Topic :: Scientific/Engineering
|
@@ -2,10 +2,8 @@ from collections import defaultdict
|
|
2
2
|
|
3
3
|
import numpy as np
|
4
4
|
import pyqtgraph as pg
|
5
|
-
|
6
|
-
|
7
|
-
from qtpy.QtCore import QObject, Qt
|
8
|
-
from qtpy.QtCore import Signal as pyqtSignal
|
5
|
+
from qtpy.QtCore import QObject, Qt, Signal, Slot
|
6
|
+
from qtpy.QtWidgets import QApplication
|
9
7
|
|
10
8
|
|
11
9
|
class NonDownsamplingScatterPlotItem(pg.ScatterPlotItem):
|
@@ -17,14 +15,18 @@ class NonDownsamplingScatterPlotItem(pg.ScatterPlotItem):
|
|
17
15
|
|
18
16
|
|
19
17
|
class Crosshair(QObject):
|
20
|
-
|
21
|
-
|
18
|
+
# QT Position of mouse cursor
|
19
|
+
positionChanged = Signal(tuple)
|
20
|
+
positionClicked = Signal(tuple)
|
21
|
+
# Plain crosshair position signals mapped to real coordinates
|
22
|
+
crosshairChanged = Signal(tuple)
|
23
|
+
crosshairClicked = Signal(tuple)
|
22
24
|
# Signal for 1D plot
|
23
|
-
coordinatesChanged1D =
|
24
|
-
coordinatesClicked1D =
|
25
|
+
coordinatesChanged1D = Signal(tuple)
|
26
|
+
coordinatesClicked1D = Signal(tuple)
|
25
27
|
# Signal for 2D plot
|
26
|
-
coordinatesChanged2D =
|
27
|
-
coordinatesClicked2D =
|
28
|
+
coordinatesChanged2D = Signal(tuple)
|
29
|
+
coordinatesClicked2D = Signal(tuple)
|
28
30
|
|
29
31
|
def __init__(self, plot_item: pg.PlotItem, precision: int = 3, parent=None):
|
30
32
|
"""
|
@@ -47,11 +49,21 @@ class Crosshair(QObject):
|
|
47
49
|
self.h_line.skip_auto_range = True
|
48
50
|
self.plot_item.addItem(self.v_line, ignoreBounds=True)
|
49
51
|
self.plot_item.addItem(self.h_line, ignoreBounds=True)
|
52
|
+
|
53
|
+
# Add TextItem to display coordinates
|
54
|
+
self.coord_label = pg.TextItem("", anchor=(1, 1), fill=(0, 0, 0, 100))
|
55
|
+
self.coord_label.setVisible(False) # Hide initially
|
56
|
+
self.coord_label.skip_auto_range = True
|
57
|
+
self.plot_item.addItem(self.coord_label)
|
58
|
+
|
59
|
+
# Signals to connect
|
50
60
|
self.proxy = pg.SignalProxy(
|
51
61
|
self.plot_item.scene().sigMouseMoved, rateLimit=60, slot=self.mouse_moved
|
52
62
|
)
|
63
|
+
self.positionChanged.connect(self.update_coord_label)
|
53
64
|
self.plot_item.scene().sigMouseClicked.connect(self.mouse_clicked)
|
54
65
|
|
66
|
+
# Connect signals from pyqtgraph right click menu
|
55
67
|
self.plot_item.ctrl.derivativeCheck.checkStateChanged.connect(self.check_derivatives)
|
56
68
|
self.plot_item.ctrl.logXCheck.checkStateChanged.connect(self.check_log)
|
57
69
|
self.plot_item.ctrl.logYCheck.checkStateChanged.connect(self.check_log)
|
@@ -62,6 +74,44 @@ class Crosshair(QObject):
|
|
62
74
|
self.marker_clicked_1d = {}
|
63
75
|
self.marker_2d = None
|
64
76
|
self.update_markers()
|
77
|
+
self.check_log()
|
78
|
+
self.check_derivatives()
|
79
|
+
|
80
|
+
self._connect_to_theme_change()
|
81
|
+
|
82
|
+
def _connect_to_theme_change(self):
|
83
|
+
"""Connect to the theme change signal."""
|
84
|
+
qapp = QApplication.instance()
|
85
|
+
if hasattr(qapp, "theme_signal"):
|
86
|
+
qapp.theme_signal.theme_updated.connect(self._update_theme)
|
87
|
+
self._update_theme()
|
88
|
+
|
89
|
+
@Slot(str)
|
90
|
+
def _update_theme(self, theme: str | None = None):
|
91
|
+
"""Update the theme."""
|
92
|
+
if theme is None:
|
93
|
+
qapp = QApplication.instance()
|
94
|
+
if hasattr(qapp, "theme"):
|
95
|
+
theme = qapp.theme.theme
|
96
|
+
else:
|
97
|
+
theme = "dark"
|
98
|
+
self.apply_theme(theme)
|
99
|
+
|
100
|
+
def apply_theme(self, theme: str):
|
101
|
+
"""Apply the theme to the plot."""
|
102
|
+
if theme == "dark":
|
103
|
+
text_color = "w"
|
104
|
+
label_bg_color = (50, 50, 50, 150)
|
105
|
+
elif theme == "light":
|
106
|
+
text_color = "k"
|
107
|
+
label_bg_color = (240, 240, 240, 150)
|
108
|
+
else:
|
109
|
+
text_color = "w"
|
110
|
+
label_bg_color = (50, 50, 50, 150)
|
111
|
+
|
112
|
+
self.coord_label.setColor(text_color)
|
113
|
+
self.coord_label.fill = pg.mkBrush(label_bg_color)
|
114
|
+
self.coord_label.border = pg.mkPen(None)
|
65
115
|
|
66
116
|
def update_markers(self):
|
67
117
|
"""Update the markers for the crosshair, creating new ones if necessary."""
|
@@ -151,21 +201,34 @@ class Crosshair(QObject):
|
|
151
201
|
|
152
202
|
return None, None
|
153
203
|
|
154
|
-
def closest_x_y_value(self,
|
204
|
+
def closest_x_y_value(self, input_x: float, list_x: list, list_y: list) -> tuple:
|
155
205
|
"""
|
156
206
|
Find the closest x and y value to the input value.
|
157
207
|
|
158
208
|
Args:
|
159
|
-
|
209
|
+
input_x (float): Input value
|
160
210
|
list_x (list): List of x values
|
161
211
|
list_y (list): List of y values
|
162
212
|
|
163
213
|
Returns:
|
164
214
|
tuple: Closest x and y value
|
165
215
|
"""
|
166
|
-
|
167
|
-
|
168
|
-
|
216
|
+
# Convert lists to NumPy arrays
|
217
|
+
arr_x = np.asarray(list_x)
|
218
|
+
|
219
|
+
# Get the indices where x is not NaN
|
220
|
+
valid_indices = ~np.isnan(arr_x)
|
221
|
+
|
222
|
+
# Filter x array to exclude NaN values
|
223
|
+
filtered_x = arr_x[valid_indices]
|
224
|
+
|
225
|
+
# Find the index of the closest value in the filtered x array
|
226
|
+
closest_index = np.abs(filtered_x - input_x).argmin()
|
227
|
+
|
228
|
+
# Map back to the original index in the list_x and list_y arrays
|
229
|
+
original_index = np.where(valid_indices)[0][closest_index]
|
230
|
+
|
231
|
+
return list_x[original_index], list_y[original_index]
|
169
232
|
|
170
233
|
def mouse_moved(self, event):
|
171
234
|
"""Handles the mouse moved event, updating the crosshair position and emitting signals.
|
@@ -175,17 +238,15 @@ class Crosshair(QObject):
|
|
175
238
|
"""
|
176
239
|
pos = event[0]
|
177
240
|
self.update_markers()
|
178
|
-
self.positionChanged.emit((pos.x(), pos.y()))
|
179
241
|
if self.plot_item.vb.sceneBoundingRect().contains(pos):
|
180
242
|
mouse_point = self.plot_item.vb.mapSceneToView(pos)
|
181
|
-
self.v_line.setPos(mouse_point.x())
|
182
|
-
self.h_line.setPos(mouse_point.y())
|
183
|
-
|
184
243
|
x, y = mouse_point.x(), mouse_point.y()
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
244
|
+
self.v_line.setPos(x)
|
245
|
+
self.h_line.setPos(y)
|
246
|
+
scaled_x, scaled_y = self.scale_emitted_coordinates(mouse_point.x(), mouse_point.y())
|
247
|
+
self.crosshairChanged.emit((scaled_x, scaled_y))
|
248
|
+
self.positionChanged.emit((x, y))
|
249
|
+
|
189
250
|
x_snap_values, y_snap_values = self.snap_to_data(x, y)
|
190
251
|
if x_snap_values is None or y_snap_values is None:
|
191
252
|
return
|
@@ -202,7 +263,12 @@ class Crosshair(QObject):
|
|
202
263
|
if x is None or y is None:
|
203
264
|
continue
|
204
265
|
self.marker_moved_1d[name].setData([x], [y])
|
205
|
-
|
266
|
+
x_snapped_scaled, y_snapped_scaled = self.scale_emitted_coordinates(x, y)
|
267
|
+
coordinate_to_emit = (
|
268
|
+
name,
|
269
|
+
round(x_snapped_scaled, self.precision),
|
270
|
+
round(y_snapped_scaled, self.precision),
|
271
|
+
)
|
206
272
|
self.coordinatesChanged1D.emit(coordinate_to_emit)
|
207
273
|
elif isinstance(item, pg.ImageItem):
|
208
274
|
name = item.config.monitor
|
@@ -229,12 +295,10 @@ class Crosshair(QObject):
|
|
229
295
|
if self.plot_item.vb.sceneBoundingRect().contains(event._scenePos):
|
230
296
|
mouse_point = self.plot_item.vb.mapSceneToView(event._scenePos)
|
231
297
|
x, y = mouse_point.x(), mouse_point.y()
|
298
|
+
scaled_x, scaled_y = self.scale_emitted_coordinates(mouse_point.x(), mouse_point.y())
|
299
|
+
self.crosshairClicked.emit((scaled_x, scaled_y))
|
232
300
|
self.positionClicked.emit((x, y))
|
233
301
|
|
234
|
-
if self.is_log_x:
|
235
|
-
x = 10**x
|
236
|
-
if self.is_log_y:
|
237
|
-
y = 10**y
|
238
302
|
x_snap_values, y_snap_values = self.snap_to_data(x, y)
|
239
303
|
|
240
304
|
if x_snap_values is None or y_snap_values is None:
|
@@ -252,7 +316,12 @@ class Crosshair(QObject):
|
|
252
316
|
if x is None or y is None:
|
253
317
|
continue
|
254
318
|
self.marker_clicked_1d[name].setData([x], [y])
|
255
|
-
|
319
|
+
x_snapped_scaled, y_snapped_scaled = self.scale_emitted_coordinates(x, y)
|
320
|
+
coordinate_to_emit = (
|
321
|
+
name,
|
322
|
+
round(x_snapped_scaled, self.precision),
|
323
|
+
round(y_snapped_scaled, self.precision),
|
324
|
+
)
|
256
325
|
self.coordinatesClicked1D.emit(coordinate_to_emit)
|
257
326
|
elif isinstance(item, pg.ImageItem):
|
258
327
|
name = item.config.monitor
|
@@ -272,10 +341,40 @@ class Crosshair(QObject):
|
|
272
341
|
for marker in self.marker_clicked_1d.values():
|
273
342
|
marker.clear()
|
274
343
|
|
344
|
+
def scale_emitted_coordinates(self, x, y):
|
345
|
+
"""Scales the emitted coordinates if the axes are in log scale.
|
346
|
+
|
347
|
+
Args:
|
348
|
+
x (float): The x-coordinate
|
349
|
+
y (float): The y-coordinate
|
350
|
+
|
351
|
+
Returns:
|
352
|
+
tuple: The scaled x and y coordinates
|
353
|
+
"""
|
354
|
+
if self.is_log_x:
|
355
|
+
x = 10**x
|
356
|
+
if self.is_log_y:
|
357
|
+
y = 10**y
|
358
|
+
return x, y
|
359
|
+
|
360
|
+
def update_coord_label(self, pos: tuple):
|
361
|
+
"""Updates the coordinate label based on the crosshair position and axis scales.
|
362
|
+
|
363
|
+
Args:
|
364
|
+
pos (tuple): The (x, y) position of the crosshair.
|
365
|
+
"""
|
366
|
+
x, y = pos
|
367
|
+
x_scaled, y_scaled = self.scale_emitted_coordinates(x, y)
|
368
|
+
|
369
|
+
# # Update coordinate label
|
370
|
+
self.coord_label.setText(f"({x_scaled:.{self.precision}g}, {y_scaled:.{self.precision}g})")
|
371
|
+
self.coord_label.setPos(x, y)
|
372
|
+
self.coord_label.setVisible(True)
|
373
|
+
|
275
374
|
def check_log(self):
|
276
375
|
"""Checks if the x or y axis is in log scale and updates the internal state accordingly."""
|
277
|
-
self.is_log_x = self.plot_item.
|
278
|
-
self.is_log_y = self.plot_item.
|
376
|
+
self.is_log_x = self.plot_item.axes["bottom"]["item"].logMode
|
377
|
+
self.is_log_y = self.plot_item.axes["left"]["item"].logMode
|
279
378
|
self.clear_markers()
|
280
379
|
|
281
380
|
def check_derivatives(self):
|
@@ -284,6 +383,8 @@ class Crosshair(QObject):
|
|
284
383
|
self.clear_markers()
|
285
384
|
|
286
385
|
def cleanup(self):
|
287
|
-
self.
|
288
|
-
self.
|
386
|
+
self.plot_item.removeItem(self.v_line)
|
387
|
+
self.plot_item.removeItem(self.h_line)
|
388
|
+
self.plot_item.removeItem(self.coord_label)
|
389
|
+
|
289
390
|
self.clear_markers()
|
@@ -397,8 +397,8 @@ class BECPlotBase(BECConnector, pg.GraphicsLayout):
|
|
397
397
|
"""Hook the crosshair to all plots."""
|
398
398
|
if self.crosshair is None:
|
399
399
|
self.crosshair = Crosshair(self.plot_item, precision=3)
|
400
|
-
self.crosshair.
|
401
|
-
self.crosshair.
|
400
|
+
self.crosshair.crosshairChanged.connect(self.crosshair_position_changed)
|
401
|
+
self.crosshair.crosshairClicked.connect(self.crosshair_position_clicked)
|
402
402
|
self.crosshair.coordinatesChanged1D.connect(self.crosshair_coordinates_changed)
|
403
403
|
self.crosshair.coordinatesClicked1D.connect(self.crosshair_coordinates_clicked)
|
404
404
|
self.crosshair.coordinatesChanged2D.connect(self.crosshair_coordinates_changed)
|
@@ -407,8 +407,8 @@ class BECPlotBase(BECConnector, pg.GraphicsLayout):
|
|
407
407
|
def unhook_crosshair(self) -> None:
|
408
408
|
"""Unhook the crosshair from all plots."""
|
409
409
|
if self.crosshair is not None:
|
410
|
-
self.crosshair.
|
411
|
-
self.crosshair.
|
410
|
+
self.crosshair.crosshairChanged.disconnect(self.crosshair_position_changed)
|
411
|
+
self.crosshair.crosshairClicked.disconnect(self.crosshair_position_clicked)
|
412
412
|
self.crosshair.coordinatesChanged1D.disconnect(self.crosshair_coordinates_changed)
|
413
413
|
self.crosshair.coordinatesClicked1D.disconnect(self.crosshair_coordinates_clicked)
|
414
414
|
self.crosshair.coordinatesChanged2D.disconnect(self.crosshair_coordinates_changed)
|