bec-widgets 1.21.2__tar.gz → 1.21.4__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.21.2 → bec_widgets-1.21.4}/CHANGELOG.md +24 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/PKG-INFO +1 -1
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/round_frame.py +18 -41
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/bec_signal_proxy.py +8 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/bec_widget.py +1 -1
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/colors.py +58 -10
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/plot_base.py +52 -17
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/mouse_interactions.py +21 -0
- bec_widgets-1.21.4/bec_widgets/widgets/plots_next_gen/toolbar_bundles/roi_bundle.py +26 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/pyproject.toml +1 -1
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.git_hooks/pre-commit +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitignore +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitlab/issue_templates/bug_report_template.md +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitlab/issue_templates/documentation_update_template.md +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitlab/issue_templates/feature_request_template.md +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitlab/merge_request_templates/default.md +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitlab-ci.yml +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.pylintrc +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/.readthedocs.yaml +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/LICENSE +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/README.md +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/applications/alignment/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/applications/bec_app.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/auto_updates.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/client.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/rpc/rpc_register.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/compact_popup.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/error_popups.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/palette_viewer.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/settings_dialog.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/side_panel.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/qt_utils/toolbar.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/tests/utils.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/dock/dock.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/figure.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/axis_settings.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/axis_settings.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/image/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/image/image.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/image/image_item.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/image/image_processor.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/plot_base.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/waveform/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/console/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/console/console.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/console/register_console.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/scan_metadata/_metadata_widgets.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/scan_metadata/additional_metadata_table.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/website/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/image/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/image/bec_image_widget.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/image/image_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/image/register_bec_image_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/motor_map_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/waveform_popups/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots/waveform/waveform_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/setting_menus/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_horizontal.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_vertical.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/plot_export.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/save_state.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,30 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v1.21.4 (2025-02-19)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **colors**: Pyqtgraph styling updated on the app level
|
9
|
+
([`ae18279`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ae182796855719437bdf911c2e969e3f438d6982))
|
10
|
+
|
11
|
+
- **plot_base**: Mouse interactions default state fetch to toolbar
|
12
|
+
([`97c0ed5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/97c0ed53df21053fef9811c3dea3b79020137030))
|
13
|
+
|
14
|
+
### Refactoring
|
15
|
+
|
16
|
+
- **plot_base**: Change the PlotWidget to GraphicalLayoutWidget
|
17
|
+
([`ff8e282`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ff8e282034f0970b69cf0447fc5f88b4f30bf470))
|
18
|
+
|
19
|
+
|
20
|
+
## v1.21.3 (2025-02-19)
|
21
|
+
|
22
|
+
### Bug Fixes
|
23
|
+
|
24
|
+
- **bec_signal_proxy**: Unblock signal timer cleanup added
|
25
|
+
([`0addef5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0addef5f172a7cc1412ac146a6eec2a2caa8ad9c))
|
26
|
+
|
27
|
+
|
4
28
|
## v1.21.2 (2025-02-18)
|
5
29
|
|
6
30
|
### Bug Fixes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import pyqtgraph as pg
|
2
2
|
from qtpy.QtCore import Property
|
3
|
-
from qtpy.QtWidgets import QApplication, QFrame, QVBoxLayout, QWidget
|
3
|
+
from qtpy.QtWidgets import QApplication, QFrame, QHBoxLayout, QVBoxLayout, QWidget
|
4
4
|
|
5
5
|
from bec_widgets.utils.bec_widget import BECWidget
|
6
6
|
from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
|
@@ -31,22 +31,20 @@ class RoundedFrame(BECWidget, QFrame):
|
|
31
31
|
# Apply rounded frame styling
|
32
32
|
self.setProperty("skip_settings", True)
|
33
33
|
self.setObjectName("roundedFrame")
|
34
|
-
self.update_style()
|
35
34
|
|
36
35
|
# Create a layout for the frame
|
37
|
-
layout =
|
38
|
-
layout.setContentsMargins(5, 5, 5, 5) # Set 5px margin
|
36
|
+
self.layout = QHBoxLayout(self)
|
37
|
+
self.layout.setContentsMargins(5, 5, 5, 5) # Set 5px margin
|
39
38
|
|
40
39
|
# Add the content widget to the layout
|
41
40
|
if content_widget:
|
42
|
-
layout.addWidget(content_widget)
|
41
|
+
self.layout.addWidget(content_widget)
|
43
42
|
|
44
43
|
# Store reference to the content widget
|
45
44
|
self.content_widget = content_widget
|
46
45
|
|
47
|
-
# Automatically apply initial styles to the
|
48
|
-
|
49
|
-
self.apply_plot_widget_style()
|
46
|
+
# Automatically apply initial styles to the GraphicalLayoutWidget if applicable
|
47
|
+
self.apply_plot_widget_style()
|
50
48
|
|
51
49
|
self._connect_to_theme_change()
|
52
50
|
|
@@ -65,10 +63,6 @@ class RoundedFrame(BECWidget, QFrame):
|
|
65
63
|
|
66
64
|
self.update_style()
|
67
65
|
|
68
|
-
# Update PlotWidget's background color and axis styles if applicable
|
69
|
-
if isinstance(self.content_widget, pg.PlotWidget):
|
70
|
-
self.apply_plot_widget_style()
|
71
|
-
|
72
66
|
@Property(int)
|
73
67
|
def radius(self):
|
74
68
|
"""Radius of the rounded corners."""
|
@@ -92,6 +86,7 @@ class RoundedFrame(BECWidget, QFrame):
|
|
92
86
|
}}
|
93
87
|
"""
|
94
88
|
)
|
89
|
+
self.apply_plot_widget_style()
|
95
90
|
|
96
91
|
def apply_plot_widget_style(self, border: str = "none"):
|
97
92
|
"""
|
@@ -100,35 +95,16 @@ class RoundedFrame(BECWidget, QFrame):
|
|
100
95
|
Args:
|
101
96
|
border (str): Border style (e.g., 'none', '1px solid red').
|
102
97
|
"""
|
103
|
-
if isinstance(self.content_widget, pg.
|
104
|
-
# Sync PlotWidget's background color with the RoundedFrame's background color
|
105
|
-
self.content_widget.setBackground(self.background_color)
|
106
|
-
|
107
|
-
# Calculate contrast-optimized axis and label colors
|
108
|
-
if self.background_color == "#e9ecef": # Light mode
|
109
|
-
label_color = "#000000"
|
110
|
-
axis_color = "#666666"
|
111
|
-
else: # Dark mode
|
112
|
-
label_color = "#FFFFFF"
|
113
|
-
axis_color = "#CCCCCC"
|
114
|
-
|
115
|
-
# Apply axis label and tick colors
|
116
|
-
plot_item = self.content_widget.getPlotItem()
|
117
|
-
for axis in ["left", "right", "top", "bottom"]:
|
118
|
-
plot_item.getAxis(axis).setPen(pg.mkPen(color=axis_color))
|
119
|
-
plot_item.getAxis(axis).setTextPen(pg.mkPen(color=label_color))
|
120
|
-
|
121
|
-
# Change title color
|
122
|
-
plot_item.titleLabel.setText(plot_item.titleLabel.text, color=label_color)
|
123
|
-
|
98
|
+
if isinstance(self.content_widget, pg.GraphicsLayoutWidget):
|
124
99
|
# Apply border style via stylesheet
|
125
100
|
self.content_widget.setStyleSheet(
|
126
101
|
f"""
|
127
|
-
|
102
|
+
GraphicsLayoutWidget {{
|
128
103
|
border: {border}; /* Explicitly set the border */
|
129
104
|
}}
|
130
105
|
"""
|
131
106
|
)
|
107
|
+
self.content_widget.setBackground(self.background_color)
|
132
108
|
|
133
109
|
|
134
110
|
class ExampleApp(QWidget): # pragma: no cover
|
@@ -142,26 +118,27 @@ class ExampleApp(QWidget): # pragma: no cover
|
|
142
118
|
dark_button = DarkModeButton()
|
143
119
|
|
144
120
|
# Create PlotWidgets
|
145
|
-
plot1 = pg.
|
146
|
-
|
121
|
+
plot1 = pg.GraphicsLayoutWidget()
|
122
|
+
plot_item_1 = pg.PlotItem()
|
123
|
+
plot_item_1.plot([1, 3, 2, 4, 6, 5], pen="r")
|
124
|
+
plot1.plot_item = plot_item_1
|
147
125
|
|
148
|
-
plot2 = pg.
|
149
|
-
|
126
|
+
plot2 = pg.GraphicsLayoutWidget()
|
127
|
+
plot_item_2 = pg.PlotItem()
|
128
|
+
plot_item_2.plot([1, 2, 4, 8, 16, 32], pen="r")
|
129
|
+
plot2.plot_item = plot_item_2
|
150
130
|
|
151
131
|
# Wrap PlotWidgets in RoundedFrame
|
152
132
|
rounded_plot1 = RoundedFrame(content_widget=plot1, theme_update=True)
|
153
133
|
rounded_plot2 = RoundedFrame(content_widget=plot2, theme_update=True)
|
154
|
-
round = RoundedFrame()
|
155
134
|
|
156
135
|
# Add to layout
|
157
136
|
layout.addWidget(dark_button)
|
158
137
|
layout.addWidget(rounded_plot1)
|
159
138
|
layout.addWidget(rounded_plot2)
|
160
|
-
layout.addWidget(round)
|
161
139
|
|
162
140
|
self.setLayout(layout)
|
163
141
|
|
164
|
-
# Simulate theme change after 2 seconds
|
165
142
|
from qtpy.QtCore import QTimer
|
166
143
|
|
167
144
|
def change_theme():
|
@@ -80,3 +80,11 @@ class BECSignalProxy(SignalProxy):
|
|
80
80
|
"""
|
81
81
|
if self.blocked:
|
82
82
|
self.unblock_proxy()
|
83
|
+
|
84
|
+
def cleanup(self):
|
85
|
+
"""
|
86
|
+
Cleanup the proxy by stopping the timer and disconnecting the timeout signal.
|
87
|
+
"""
|
88
|
+
self._timer.stop()
|
89
|
+
self._timer.timeout.disconnect(self._timeout_unblock)
|
90
|
+
self._timer.deleteLater()
|
@@ -66,7 +66,7 @@ class BECWidget(BECConnector):
|
|
66
66
|
if hasattr(qapp, "theme_signal"):
|
67
67
|
qapp.theme_signal.theme_updated.connect(self._update_theme)
|
68
68
|
|
69
|
-
def _update_theme(self, theme: str):
|
69
|
+
def _update_theme(self, theme: str | None = None):
|
70
70
|
"""Update the theme."""
|
71
71
|
if theme is None:
|
72
72
|
qapp = QApplication.instance()
|
@@ -1,6 +1,5 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
-
import itertools
|
4
3
|
import re
|
5
4
|
from typing import TYPE_CHECKING, Literal
|
6
5
|
|
@@ -71,15 +70,64 @@ def apply_theme(theme: Literal["dark", "light"]):
|
|
71
70
|
Apply the theme to all pyqtgraph widgets. Do not use this function directly. Use set_theme instead.
|
72
71
|
"""
|
73
72
|
app = QApplication.instance()
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
73
|
+
graphic_layouts = [
|
74
|
+
child
|
75
|
+
for top in app.topLevelWidgets()
|
76
|
+
for child in top.findChildren(pg.GraphicsLayoutWidget)
|
77
|
+
]
|
78
|
+
|
79
|
+
plot_items = [
|
80
|
+
item
|
81
|
+
for gl in graphic_layouts
|
82
|
+
for item in gl.ci.items.keys() # ci is internal pg.GraphicsLayout that hosts all items
|
83
|
+
if isinstance(item, pg.PlotItem)
|
84
|
+
]
|
85
|
+
|
86
|
+
histograms = [
|
87
|
+
item
|
88
|
+
for gl in graphic_layouts
|
89
|
+
for item in gl.ci.items.keys() # ci is internal pg.GraphicsLayout that hosts all items
|
90
|
+
if isinstance(item, pg.HistogramLUTItem)
|
91
|
+
]
|
92
|
+
|
93
|
+
# Update background color based on the theme
|
94
|
+
if theme == "light":
|
95
|
+
background_color = "#e9ecef" # Subtle contrast for light mode
|
96
|
+
foreground_color = "#141414"
|
97
|
+
label_color = "#000000"
|
98
|
+
axis_color = "#666666"
|
99
|
+
else:
|
100
|
+
background_color = "#141414" # Dark mode
|
101
|
+
foreground_color = "#e9ecef"
|
102
|
+
label_color = "#FFFFFF"
|
103
|
+
axis_color = "#CCCCCC"
|
104
|
+
|
105
|
+
# update GraphicsLayoutWidget
|
106
|
+
pg.setConfigOptions(foreground=foreground_color, background=background_color)
|
107
|
+
for pg_widget in graphic_layouts:
|
108
|
+
pg_widget.setBackground(background_color)
|
109
|
+
|
110
|
+
# update PlotItems
|
111
|
+
for plot_item in plot_items:
|
112
|
+
for axis in ["left", "right", "top", "bottom"]:
|
113
|
+
plot_item.getAxis(axis).setPen(pg.mkPen(color=axis_color))
|
114
|
+
plot_item.getAxis(axis).setTextPen(pg.mkPen(color=label_color))
|
115
|
+
|
116
|
+
# Change title color
|
117
|
+
plot_item.titleLabel.setText(plot_item.titleLabel.text, color=label_color)
|
118
|
+
|
119
|
+
# Change legend color
|
120
|
+
if hasattr(plot_item, "legend") and plot_item.legend is not None:
|
121
|
+
plot_item.legend.setLabelTextColor(label_color)
|
122
|
+
# if legend is in plot item and theme is changed, has to be like that because of pg opt logic
|
123
|
+
for sample, label in plot_item.legend.items:
|
124
|
+
label_text = label.text
|
125
|
+
label.setText(label_text, color=label_color)
|
126
|
+
|
127
|
+
# update HistogramLUTItem
|
128
|
+
for histogram in histograms:
|
129
|
+
histogram.axis.setPen(pg.mkPen(color=axis_color))
|
130
|
+
histogram.axis.setTextPen(pg.mkPen(color=label_color))
|
83
131
|
|
84
132
|
# now define stylesheet according to theme and apply it
|
85
133
|
style = bec_qthemes.load_stylesheet(theme)
|
@@ -11,7 +11,6 @@ from bec_widgets.qt_utils.side_panel import SidePanel
|
|
11
11
|
from bec_widgets.qt_utils.toolbar import MaterialIconAction, ModularToolBar, SeparatorAction
|
12
12
|
from bec_widgets.utils import ConnectionConfig, Crosshair, EntryValidator
|
13
13
|
from bec_widgets.utils.bec_widget import BECWidget
|
14
|
-
from bec_widgets.utils.colors import set_theme
|
15
14
|
from bec_widgets.utils.fps_counter import FPSCounter
|
16
15
|
from bec_widgets.utils.widget_state_manager import WidgetStateManager
|
17
16
|
from bec_widgets.widgets.containers.layout_manager.layout_manager import LayoutManagerWidget
|
@@ -20,7 +19,7 @@ from bec_widgets.widgets.plots_next_gen.toolbar_bundles.mouse_interactions impor
|
|
20
19
|
MouseInteractionToolbarBundle,
|
21
20
|
)
|
22
21
|
from bec_widgets.widgets.plots_next_gen.toolbar_bundles.plot_export import PlotExportBundle
|
23
|
-
from bec_widgets.widgets.plots_next_gen.toolbar_bundles.
|
22
|
+
from bec_widgets.widgets.plots_next_gen.toolbar_bundles.roi_bundle import ROIBundle
|
24
23
|
from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
|
25
24
|
|
26
25
|
logger = bec_logger.logger
|
@@ -83,8 +82,9 @@ class PlotBase(BECWidget, QWidget):
|
|
83
82
|
self.entry_validator = EntryValidator(self.dev)
|
84
83
|
|
85
84
|
# Base widgets elements
|
85
|
+
self.plot_widget = pg.GraphicsLayoutWidget(parent=self)
|
86
86
|
self.plot_item = pg.PlotItem(viewBox=BECViewBox(enableMenu=True))
|
87
|
-
self.plot_widget
|
87
|
+
self.plot_widget.addItem(self.plot_item)
|
88
88
|
self.side_panel = SidePanel(self, orientation="left", panel_max_width=280)
|
89
89
|
self.toolbar = ModularToolBar(target_widget=self, orientation="horizontal")
|
90
90
|
self.init_toolbar()
|
@@ -94,13 +94,20 @@ class PlotBase(BECWidget, QWidget):
|
|
94
94
|
self.crosshair = None
|
95
95
|
self.fps_monitor = None
|
96
96
|
self.fps_label = QLabel(alignment=Qt.AlignmentFlag.AlignRight)
|
97
|
+
self._user_x_label = ""
|
98
|
+
self._x_label_suffix = ""
|
97
99
|
|
98
100
|
self._init_ui()
|
99
101
|
|
102
|
+
self._connect_to_theme_change()
|
103
|
+
self._update_theme()
|
104
|
+
|
105
|
+
def apply_theme(self, theme: str):
|
106
|
+
self.round_plot_widget.apply_theme(theme)
|
107
|
+
|
100
108
|
def _init_ui(self):
|
101
109
|
self.layout.addWidget(self.layout_manager)
|
102
110
|
self.round_plot_widget = RoundedFrame(content_widget=self.plot_widget, theme_update=True)
|
103
|
-
self.round_plot_widget.apply_theme("dark")
|
104
111
|
|
105
112
|
self.layout_manager.add_widget(self.round_plot_widget)
|
106
113
|
self.layout_manager.add_widget_relative(self.fps_label, self.round_plot_widget, "top")
|
@@ -117,19 +124,15 @@ class PlotBase(BECWidget, QWidget):
|
|
117
124
|
|
118
125
|
self.plot_export_bundle = PlotExportBundle("plot_export", target_widget=self)
|
119
126
|
self.mouse_bundle = MouseInteractionToolbarBundle("mouse_interaction", target_widget=self)
|
120
|
-
self.state_export_bundle = SaveStateBundle("state_export", target_widget=self)
|
127
|
+
# self.state_export_bundle = SaveStateBundle("state_export", target_widget=self) #TODO ATM disabled, cannot be used in DockArea, which is exposed to the user
|
128
|
+
self.roi_bundle = ROIBundle("roi", target_widget=self)
|
121
129
|
|
122
130
|
# Add elements to toolbar
|
123
131
|
self.toolbar.add_bundle(self.plot_export_bundle, target_widget=self)
|
124
|
-
self.toolbar.add_bundle(self.state_export_bundle, target_widget=self)
|
132
|
+
# self.toolbar.add_bundle(self.state_export_bundle, target_widget=self) #TODO ATM disabled, cannot be used in DockArea, which is exposed to the user
|
125
133
|
self.toolbar.add_bundle(self.mouse_bundle, target_widget=self)
|
134
|
+
self.toolbar.add_bundle(self.roi_bundle, target_widget=self)
|
126
135
|
|
127
|
-
self.toolbar.add_action("separator_0", SeparatorAction(), target_widget=self)
|
128
|
-
self.toolbar.add_action(
|
129
|
-
"crosshair",
|
130
|
-
MaterialIconAction(icon_name="point_scan", tooltip="Show Crosshair", checkable=True),
|
131
|
-
target_widget=self,
|
132
|
-
)
|
133
136
|
self.toolbar.add_action("separator_1", SeparatorAction(), target_widget=self)
|
134
137
|
self.toolbar.add_action(
|
135
138
|
"fps_monitor",
|
@@ -141,7 +144,6 @@ class PlotBase(BECWidget, QWidget):
|
|
141
144
|
self.toolbar.widgets["fps_monitor"].action.toggled.connect(
|
142
145
|
lambda checked: setattr(self, "enable_fps_monitor", checked)
|
143
146
|
)
|
144
|
-
self.toolbar.widgets["crosshair"].action.toggled.connect(self.toggle_crosshair)
|
145
147
|
|
146
148
|
def add_side_menus(self):
|
147
149
|
"""Adds multiple menus to the side panel."""
|
@@ -256,12 +258,45 @@ class PlotBase(BECWidget, QWidget):
|
|
256
258
|
|
257
259
|
@SafeProperty(str, doc="The text of the x label")
|
258
260
|
def x_label(self) -> str:
|
259
|
-
return self.
|
261
|
+
return self._user_x_label
|
260
262
|
|
261
263
|
@x_label.setter
|
262
264
|
def x_label(self, value: str):
|
263
|
-
self.
|
264
|
-
self.
|
265
|
+
self._user_x_label = value
|
266
|
+
self._apply_x_label()
|
267
|
+
self.property_changed.emit("x_label", self._user_x_label)
|
268
|
+
|
269
|
+
@property
|
270
|
+
def x_label_suffix(self) -> str:
|
271
|
+
"""
|
272
|
+
A read-only (or internal) suffix automatically appended to the user label.
|
273
|
+
Not settable by the user directly from the UI.
|
274
|
+
"""
|
275
|
+
return self._x_label_suffix
|
276
|
+
|
277
|
+
def set_x_label_suffix(self, suffix: str):
|
278
|
+
"""
|
279
|
+
Public or protected method to update the suffix.
|
280
|
+
The user code or subclass (Waveform) can call this
|
281
|
+
when x_mode changes, but the AxisSettings won't show it.
|
282
|
+
"""
|
283
|
+
self._x_label_suffix = suffix
|
284
|
+
self._apply_x_label()
|
285
|
+
|
286
|
+
@property
|
287
|
+
def x_label_combined(self) -> str:
|
288
|
+
"""
|
289
|
+
The final label shown on the axis = user portion + suffix.
|
290
|
+
"""
|
291
|
+
return self._user_x_label + self._x_label_suffix
|
292
|
+
|
293
|
+
def _apply_x_label(self):
|
294
|
+
"""
|
295
|
+
Actually updates the pyqtgraph axis label text to
|
296
|
+
the combined label. Called whenever user label or suffix changes.
|
297
|
+
"""
|
298
|
+
final_label = self.x_label_combined
|
299
|
+
self.plot_item.setLabel("bottom", text=final_label)
|
265
300
|
|
266
301
|
@SafeProperty(str, doc="The text of the y label")
|
267
302
|
def y_label(self) -> str:
|
@@ -545,6 +580,7 @@ class PlotBase(BECWidget, QWidget):
|
|
545
580
|
self.unhook_crosshair()
|
546
581
|
self.unhook_fps_monitor(delete_label=True)
|
547
582
|
self.cleanup_pyqtgraph()
|
583
|
+
self.rpc_register.remove_rpc(self)
|
548
584
|
|
549
585
|
def cleanup_pyqtgraph(self):
|
550
586
|
"""Cleanup pyqtgraph items."""
|
@@ -561,7 +597,6 @@ if __name__ == "__main__": # pragma: no cover:
|
|
561
597
|
from qtpy.QtWidgets import QApplication
|
562
598
|
|
563
599
|
app = QApplication(sys.argv)
|
564
|
-
set_theme("dark")
|
565
600
|
widget = PlotBase()
|
566
601
|
widget.show()
|
567
602
|
# Just some example data and parameters to test
|
@@ -55,6 +55,27 @@ class MouseInteractionToolbarBundle(ToolbarBundle):
|
|
55
55
|
auto.action.triggered.connect(self.autorange_plot)
|
56
56
|
aspect_ratio.action.toggled.connect(self.lock_aspect_ratio)
|
57
57
|
|
58
|
+
mode = self.get_viewbox_mode()
|
59
|
+
if mode == "PanMode":
|
60
|
+
drag.action.setChecked(True)
|
61
|
+
elif mode == "RectMode":
|
62
|
+
rect.action.setChecked(True)
|
63
|
+
|
64
|
+
def get_viewbox_mode(self) -> str:
|
65
|
+
"""
|
66
|
+
Returns the current interaction mode of a PyQtGraph ViewBox.
|
67
|
+
|
68
|
+
Returns:
|
69
|
+
str: "PanMode" if pan is enabled, "RectMode" if zoom is enabled, "Unknown" otherwise.
|
70
|
+
"""
|
71
|
+
if self.target_widget:
|
72
|
+
viewbox = self.target_widget.plot_item.getViewBox()
|
73
|
+
if viewbox.getState()["mouseMode"] == 3:
|
74
|
+
return "PanMode"
|
75
|
+
elif viewbox.getState()["mouseMode"] == 1:
|
76
|
+
return "RectMode"
|
77
|
+
return "Unknown"
|
78
|
+
|
58
79
|
@SafeSlot(bool)
|
59
80
|
def enable_mouse_rectangle_mode(self, checked: bool):
|
60
81
|
"""
|
@@ -0,0 +1,26 @@
|
|
1
|
+
from bec_widgets.qt_utils.toolbar import MaterialIconAction, ToolbarBundle
|
2
|
+
|
3
|
+
|
4
|
+
class ROIBundle(ToolbarBundle):
|
5
|
+
"""
|
6
|
+
A bundle of actions that are hooked in this constructor itself,
|
7
|
+
so that you can immediately connect the signals and toggle states.
|
8
|
+
|
9
|
+
This bundle is for a toolbar that controls crosshair and ROI interaction.
|
10
|
+
"""
|
11
|
+
|
12
|
+
def __init__(self, bundle_id="roi", target_widget=None, **kwargs):
|
13
|
+
super().__init__(bundle_id=bundle_id, actions=[], **kwargs)
|
14
|
+
self.target_widget = target_widget
|
15
|
+
|
16
|
+
# Create each MaterialIconAction with a parent
|
17
|
+
# so the signals can fire even if the toolbar isn't added yet.
|
18
|
+
crosshair = MaterialIconAction(
|
19
|
+
icon_name="point_scan", tooltip="Show Crosshair", checkable=True
|
20
|
+
)
|
21
|
+
|
22
|
+
# Add them to the bundle
|
23
|
+
self.add_action("crosshair", crosshair)
|
24
|
+
|
25
|
+
# Immediately connect signals
|
26
|
+
crosshair.action.toggled.connect(self.target_widget.toggle_crosshair)
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitlab/issue_templates/documentation_update_template.md
RENAMED
File without changes
|
{bec_widgets-1.21.2 → bec_widgets-1.21.4}/.gitlab/issue_templates/feature_request_template.md
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/__init__.py
RENAMED
File without changes
|
{bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/main.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{bec_widgets-1.21.2 → bec_widgets-1.21.4}/bec_widgets/examples/plugin_example_pyside/tictactoe.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|