bec-widgets 1.24.0__tar.gz → 1.24.2__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.24.0 → bec_widgets-1.24.2}/CHANGELOG.md +33 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/PKG-INFO +1 -1
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/settings_dialog.py +7 -6
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/toolbar.py +6 -3
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/plot_base.py +170 -33
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings.py +59 -4
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_horizontal.ui +112 -156
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_vertical.ui +17 -52
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/mouse_interactions.py +31 -18
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/plot_export.py +10 -3
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/pyproject.toml +1 -1
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.git_hooks/pre-commit +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.gitignore +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.gitlab/issue_templates/bug_report_template.md +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.gitlab/issue_templates/documentation_update_template.md +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.gitlab/issue_templates/feature_request_template.md +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.gitlab/merge_request_templates/default.md +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.gitlab-ci.yml +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.pylintrc +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/.readthedocs.yaml +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/LICENSE +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/README.md +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/applications/alignment/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/applications/bec_app.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/auto_updates.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/client.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/rpc/rpc_register.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/compact_popup.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/error_popups.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/expandable_frame.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/palette_viewer.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/round_frame.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/qt_utils/side_panel.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/tests/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/tests/utils.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/dock/dock.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/figure.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/axis_settings.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/axis_settings.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/image/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/image/image.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/image/image_item.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/image/image_processor.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/plot_base.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/waveform/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/console/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/console/console.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/console/register_console.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/scan_metadata/_metadata_widgets.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/scan_metadata/additional_metadata_table.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/website/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/image/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/image/bec_image_widget.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/image/image_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/image/register_bec_image_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/motor_map_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/waveform_popups/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots/waveform/waveform_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/setting_menus/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/roi_bundle.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/plots_next_gen/toolbar_bundles/save_state.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinbox/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-1.24.0 → bec_widgets-1.24.2}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,39 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v1.24.2 (2025-02-27)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **e2e**: Added wait time to flaky e2e
|
9
|
+
([`46b1a22`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/46b1a228be4ef5eb21ecf6c7020a2cd05d06b61a))
|
10
|
+
|
11
|
+
|
12
|
+
## v1.24.1 (2025-02-26)
|
13
|
+
|
14
|
+
### Bug Fixes
|
15
|
+
|
16
|
+
- **plot_base**: Ability to choose between popup or side panel gui mode
|
17
|
+
([`3aa2f22`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3aa2f2225fba499b648d191ea27553b6db303c18))
|
18
|
+
|
19
|
+
- **toolbar**: Switch Actions for default checked actions fixed
|
20
|
+
([`6d1106e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6d1106e33e1fc3839244b11a601fb71e81a65e61))
|
21
|
+
|
22
|
+
### Refactoring
|
23
|
+
|
24
|
+
- **axis_settings**: Spinbox migrated to new BECSpinBoxes
|
25
|
+
([`90a1846`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/90a184643aaaaabaa4feb02d2f406fe2bb9daecc))
|
26
|
+
|
27
|
+
- **plot_base**: Toolbar buttons adapted for the Switch actions from toolbar; plot export and mouse
|
28
|
+
modes consolidated into one switch button
|
29
|
+
([`6f2c240`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6f2c2401ac99b2b8a9af9af76854669a248b516b))
|
30
|
+
|
31
|
+
### Testing
|
32
|
+
|
33
|
+
- Extended test coverage for axis settings, plot base and qt toolbar action
|
34
|
+
([`8679b5f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8679b5f08bef8a4a2b6338d9bee4cd70d564f288))
|
35
|
+
|
36
|
+
|
4
37
|
## v1.24.0 (2025-02-26)
|
5
38
|
|
6
39
|
### Bug Fixes
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from qtpy.QtWidgets import QDialog, QDialogButtonBox, QHBoxLayout, QPushButton, QVBoxLayout, QWidget
|
2
2
|
|
3
|
-
from bec_widgets.qt_utils.error_popups import SafeSlot
|
3
|
+
from bec_widgets.qt_utils.error_popups import SafeSlot
|
4
4
|
|
5
5
|
|
6
6
|
class SettingWidget(QWidget):
|
@@ -20,14 +20,14 @@ class SettingWidget(QWidget):
|
|
20
20
|
def set_target_widget(self, target_widget: QWidget):
|
21
21
|
self.target_widget = target_widget
|
22
22
|
|
23
|
-
@
|
23
|
+
@SafeSlot()
|
24
24
|
def accept_changes(self):
|
25
25
|
"""
|
26
26
|
Accepts the changes made in the settings widget and applies them to the target widget.
|
27
27
|
"""
|
28
28
|
pass
|
29
29
|
|
30
|
-
@
|
30
|
+
@SafeSlot(dict)
|
31
31
|
def display_current_settings(self, config_dict: dict):
|
32
32
|
"""
|
33
33
|
Displays the current settings of the target widget in the settings widget.
|
@@ -54,12 +54,13 @@ class SettingsDialog(QDialog):
|
|
54
54
|
settings_widget: SettingWidget = None,
|
55
55
|
window_title: str = "Settings",
|
56
56
|
config: dict = None,
|
57
|
+
modal: bool = False,
|
57
58
|
*args,
|
58
59
|
**kwargs,
|
59
60
|
):
|
60
61
|
super().__init__(parent, *args, **kwargs)
|
61
62
|
|
62
|
-
self.setModal(
|
63
|
+
self.setModal(modal)
|
63
64
|
|
64
65
|
self.setWindowTitle(window_title)
|
65
66
|
|
@@ -92,7 +93,7 @@ class SettingsDialog(QDialog):
|
|
92
93
|
ok_button.setDefault(True)
|
93
94
|
ok_button.setAutoDefault(True)
|
94
95
|
|
95
|
-
@
|
96
|
+
@SafeSlot()
|
96
97
|
def accept(self):
|
97
98
|
"""
|
98
99
|
Accept the changes made in the settings widget and close the dialog.
|
@@ -100,7 +101,7 @@ class SettingsDialog(QDialog):
|
|
100
101
|
self.widget.accept_changes()
|
101
102
|
super().accept()
|
102
103
|
|
103
|
-
@
|
104
|
+
@SafeSlot()
|
104
105
|
def apply_changes(self):
|
105
106
|
"""
|
106
107
|
Apply the changes made in the settings widget without closing the dialog.
|
@@ -251,6 +251,7 @@ class SwitchableToolBarAction(ToolBarAction):
|
|
251
251
|
initial_action: str = None,
|
252
252
|
tooltip: str = None,
|
253
253
|
checkable: bool = True,
|
254
|
+
default_state_checked: bool = False,
|
254
255
|
parent=None,
|
255
256
|
):
|
256
257
|
super().__init__(icon_path=None, tooltip=tooltip, checkable=checkable)
|
@@ -258,6 +259,7 @@ class SwitchableToolBarAction(ToolBarAction):
|
|
258
259
|
self.current_key = initial_action if initial_action is not None else next(iter(actions))
|
259
260
|
self.parent = parent
|
260
261
|
self.checkable = checkable
|
262
|
+
self.default_state_checked = default_state_checked
|
261
263
|
self.main_button = None
|
262
264
|
self.menu_actions: Dict[str, QAction] = {}
|
263
265
|
|
@@ -283,7 +285,7 @@ class SwitchableToolBarAction(ToolBarAction):
|
|
283
285
|
menu_action.setIconVisibleInMenu(True)
|
284
286
|
menu_action.setCheckable(self.checkable)
|
285
287
|
menu_action.setChecked(key == self.current_key)
|
286
|
-
menu_action.triggered.connect(lambda checked, k=key: self.
|
288
|
+
menu_action.triggered.connect(lambda checked, k=key: self.set_default_action(k))
|
287
289
|
menu.addAction(menu_action)
|
288
290
|
self.menu_actions[key] = menu_action
|
289
291
|
self.main_button.setMenu(menu)
|
@@ -293,7 +295,7 @@ class SwitchableToolBarAction(ToolBarAction):
|
|
293
295
|
action_obj = self.actions[self.current_key]
|
294
296
|
action_obj.action.trigger()
|
295
297
|
|
296
|
-
def
|
298
|
+
def set_default_action(self, key: str):
|
297
299
|
self.current_key = key
|
298
300
|
new_action = self.actions[self.current_key]
|
299
301
|
self.main_button.setIcon(new_action.get_icon())
|
@@ -929,7 +931,7 @@ class MainWindow(QMainWindow): # pragma: no cover
|
|
929
931
|
actions={"action1": action1, "action2": action2},
|
930
932
|
initial_action="action1",
|
931
933
|
tooltip="Switchable Action",
|
932
|
-
checkable=
|
934
|
+
checkable=True,
|
933
935
|
parent=self,
|
934
936
|
)
|
935
937
|
self.toolbar.add_action("switchable_action_no_toggle", switchable_action, self)
|
@@ -940,6 +942,7 @@ class MainWindow(QMainWindow): # pragma: no cover
|
|
940
942
|
action2.action.triggered.connect(
|
941
943
|
lambda checked: self.test_label.setText(f"Action 2 triggered, checked = {checked}")
|
942
944
|
)
|
945
|
+
switchable_action.actions["action1"].action.setChecked(True)
|
943
946
|
|
944
947
|
def add_widget_actions(self):
|
945
948
|
combo = QComboBox()
|
@@ -1,14 +1,18 @@
|
|
1
1
|
from __future__ import annotations
|
2
2
|
|
3
|
+
from enum import Enum
|
4
|
+
|
5
|
+
import numpy as np
|
3
6
|
import pyqtgraph as pg
|
4
7
|
from bec_lib import bec_logger
|
5
8
|
from qtpy.QtCore import QPoint, QPointF, Qt, Signal
|
6
|
-
from qtpy.QtWidgets import QLabel, QVBoxLayout, QWidget
|
9
|
+
from qtpy.QtWidgets import QHBoxLayout, QLabel, QMainWindow, QVBoxLayout, QWidget
|
7
10
|
|
8
11
|
from bec_widgets.qt_utils.error_popups import SafeProperty, SafeSlot
|
9
12
|
from bec_widgets.qt_utils.round_frame import RoundedFrame
|
13
|
+
from bec_widgets.qt_utils.settings_dialog import SettingsDialog
|
10
14
|
from bec_widgets.qt_utils.side_panel import SidePanel
|
11
|
-
from bec_widgets.qt_utils.toolbar import MaterialIconAction, ModularToolBar,
|
15
|
+
from bec_widgets.qt_utils.toolbar import MaterialIconAction, ModularToolBar, ToolbarBundle
|
12
16
|
from bec_widgets.utils import ConnectionConfig, Crosshair, EntryValidator
|
13
17
|
from bec_widgets.utils.bec_widget import BECWidget
|
14
18
|
from bec_widgets.utils.fps_counter import FPSCounter
|
@@ -20,7 +24,6 @@ from bec_widgets.widgets.plots_next_gen.toolbar_bundles.mouse_interactions impor
|
|
20
24
|
)
|
21
25
|
from bec_widgets.widgets.plots_next_gen.toolbar_bundles.plot_export import PlotExportBundle
|
22
26
|
from bec_widgets.widgets.plots_next_gen.toolbar_bundles.roi_bundle import ROIBundle
|
23
|
-
from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
|
24
27
|
|
25
28
|
logger = bec_logger.logger
|
26
29
|
|
@@ -42,6 +45,12 @@ class BECViewBox(pg.ViewBox):
|
|
42
45
|
self.update()
|
43
46
|
|
44
47
|
|
48
|
+
class UIMode(Enum):
|
49
|
+
NONE = 0
|
50
|
+
POPUP = 1
|
51
|
+
SIDE = 2
|
52
|
+
|
53
|
+
|
45
54
|
class PlotBase(BECWidget, QWidget):
|
46
55
|
PLUGIN = False
|
47
56
|
RPC = False
|
@@ -59,6 +68,7 @@ class PlotBase(BECWidget, QWidget):
|
|
59
68
|
config: ConnectionConfig | None = None,
|
60
69
|
client=None,
|
61
70
|
gui_id: str | None = None,
|
71
|
+
popups: bool = False,
|
62
72
|
) -> None:
|
63
73
|
if config is None:
|
64
74
|
config = ConnectionConfig(widget_class=self.__class__.__name__)
|
@@ -74,6 +84,8 @@ class PlotBase(BECWidget, QWidget):
|
|
74
84
|
self.layout.setContentsMargins(0, 0, 0, 0)
|
75
85
|
self.layout.setSpacing(0)
|
76
86
|
self.layout_manager = LayoutManagerWidget(parent=self)
|
87
|
+
self.layout_manager.layout.setContentsMargins(0, 0, 0, 0)
|
88
|
+
self.layout_manager.layout.setSpacing(0)
|
77
89
|
|
78
90
|
# Property Manager
|
79
91
|
self.state_manager = WidgetStateManager(self)
|
@@ -82,12 +94,14 @@ class PlotBase(BECWidget, QWidget):
|
|
82
94
|
self.entry_validator = EntryValidator(self.dev)
|
83
95
|
|
84
96
|
# Base widgets elements
|
97
|
+
self._ui_mode = UIMode.POPUP if popups else UIMode.SIDE
|
98
|
+
self.axis_settings_dialog = None
|
85
99
|
self.plot_widget = pg.GraphicsLayoutWidget(parent=self)
|
86
100
|
self.plot_item = pg.PlotItem(viewBox=BECViewBox(enableMenu=True))
|
87
101
|
self.plot_widget.addItem(self.plot_item)
|
88
102
|
self.side_panel = SidePanel(self, orientation="left", panel_max_width=280)
|
89
103
|
self.toolbar = ModularToolBar(target_widget=self, orientation="horizontal")
|
90
|
-
self.
|
104
|
+
self._init_toolbar()
|
91
105
|
|
92
106
|
# PlotItem Addons
|
93
107
|
self.plot_item.addLegend()
|
@@ -115,13 +129,14 @@ class PlotBase(BECWidget, QWidget):
|
|
115
129
|
self.layout_manager.add_widget_relative(self.side_panel, self.round_plot_widget, "left")
|
116
130
|
self.layout_manager.add_widget_relative(self.toolbar, self.fps_label, "top")
|
117
131
|
|
118
|
-
self.
|
132
|
+
self.ui_mode = self._ui_mode # to initiate the first time
|
119
133
|
|
120
134
|
# PlotItem ViewBox Signals
|
121
135
|
self.plot_item.vb.sigStateChanged.connect(self.viewbox_state_changed)
|
122
136
|
|
123
|
-
def
|
124
|
-
|
137
|
+
def _init_toolbar(self):
|
138
|
+
self.popup_bundle = None
|
139
|
+
self.performance_bundle = ToolbarBundle("performance")
|
125
140
|
self.plot_export_bundle = PlotExportBundle("plot_export", target_widget=self)
|
126
141
|
self.mouse_bundle = MouseInteractionToolbarBundle("mouse_interaction", target_widget=self)
|
127
142
|
# self.state_export_bundle = SaveStateBundle("state_export", target_widget=self) #TODO ATM disabled, cannot be used in DockArea, which is exposed to the user
|
@@ -133,33 +148,130 @@ class PlotBase(BECWidget, QWidget):
|
|
133
148
|
self.toolbar.add_bundle(self.mouse_bundle, target_widget=self)
|
134
149
|
self.toolbar.add_bundle(self.roi_bundle, target_widget=self)
|
135
150
|
|
136
|
-
self.
|
137
|
-
self.toolbar.add_action(
|
151
|
+
self.performance_bundle.add_action(
|
138
152
|
"fps_monitor",
|
139
|
-
MaterialIconAction(
|
140
|
-
|
153
|
+
MaterialIconAction(
|
154
|
+
icon_name="speed", tooltip="Show FPS Monitor", checkable=True, parent=self
|
155
|
+
),
|
141
156
|
)
|
142
|
-
self.toolbar.
|
157
|
+
self.toolbar.add_bundle(self.performance_bundle, target_widget=self)
|
143
158
|
|
144
159
|
self.toolbar.widgets["fps_monitor"].action.toggled.connect(
|
145
160
|
lambda checked: setattr(self, "enable_fps_monitor", checked)
|
146
161
|
)
|
147
162
|
|
163
|
+
# hide some options by default
|
164
|
+
self.toolbar.toggle_action_visibility("fps_monitor", False)
|
165
|
+
|
148
166
|
def add_side_menus(self):
|
149
167
|
"""Adds multiple menus to the side panel."""
|
150
168
|
# Setting Axis Widget
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
169
|
+
try:
|
170
|
+
axis_setting = AxisSettings(target_widget=self)
|
171
|
+
self.side_panel.add_menu(
|
172
|
+
action_id="axis",
|
173
|
+
icon_name="settings",
|
174
|
+
tooltip="Show Axis Settings",
|
175
|
+
widget=axis_setting,
|
176
|
+
title="Axis Settings",
|
177
|
+
)
|
178
|
+
except ValueError:
|
179
|
+
return
|
180
|
+
|
181
|
+
def add_popups(self):
|
182
|
+
"""
|
183
|
+
Add popups to the toolbar.
|
184
|
+
"""
|
185
|
+
self.popup_bundle = ToolbarBundle("popup_bundle")
|
186
|
+
settings = MaterialIconAction(
|
187
|
+
icon_name="settings", tooltip="Show Axis Settings", checkable=True, parent=self
|
158
188
|
)
|
189
|
+
self.popup_bundle.add_action("axis", settings)
|
190
|
+
self.toolbar.add_bundle(self.popup_bundle, target_widget=self)
|
191
|
+
self.toolbar.widgets["axis"].action.triggered.connect(self.show_axis_settings_popup)
|
192
|
+
|
193
|
+
def show_axis_settings_popup(self):
|
194
|
+
"""
|
195
|
+
Show the axis settings dialog.
|
196
|
+
"""
|
197
|
+
settings_action = self.toolbar.widgets["axis"].action
|
198
|
+
if self.axis_settings_dialog is None or not self.axis_settings_dialog.isVisible():
|
199
|
+
axis_setting = AxisSettings(target_widget=self, popup=True)
|
200
|
+
self.axis_settings_dialog = SettingsDialog(
|
201
|
+
self, settings_widget=axis_setting, window_title="Axis Settings", modal=False
|
202
|
+
)
|
203
|
+
# When the dialog is closed, update the toolbar icon and clear the reference
|
204
|
+
self.axis_settings_dialog.finished.connect(self._axis_settings_closed)
|
205
|
+
self.axis_settings_dialog.show()
|
206
|
+
settings_action.setChecked(True)
|
207
|
+
else:
|
208
|
+
# If already open, bring it to the front
|
209
|
+
self.axis_settings_dialog.raise_()
|
210
|
+
self.axis_settings_dialog.activateWindow()
|
211
|
+
settings_action.setChecked(True) # keep it toggled
|
212
|
+
|
213
|
+
def _axis_settings_closed(self):
|
214
|
+
"""
|
215
|
+
Slot for when the axis settings dialog is closed.
|
216
|
+
"""
|
217
|
+
self.axis_settings_dialog = None
|
218
|
+
self.toolbar.widgets["axis"].action.setChecked(False)
|
159
219
|
|
160
220
|
################################################################################
|
161
221
|
# Toggle UI Elements
|
162
222
|
################################################################################
|
223
|
+
@property
|
224
|
+
def ui_mode(self) -> UIMode:
|
225
|
+
return self._ui_mode
|
226
|
+
|
227
|
+
@ui_mode.setter
|
228
|
+
def ui_mode(self, mode: UIMode):
|
229
|
+
if not isinstance(mode, UIMode):
|
230
|
+
raise ValueError("ui_mode must be an instance of UIMode")
|
231
|
+
self._ui_mode = mode
|
232
|
+
|
233
|
+
# First, clear both UI elements:
|
234
|
+
if self.popup_bundle is not None:
|
235
|
+
for action_id in self.toolbar.bundles["popup_bundle"]:
|
236
|
+
self.toolbar.widgets[action_id].action.setVisible(False)
|
237
|
+
if self.axis_settings_dialog is not None and self.axis_settings_dialog.isVisible():
|
238
|
+
self.axis_settings_dialog.close()
|
239
|
+
self.side_panel.hide()
|
240
|
+
|
241
|
+
# Now, apply the new mode:
|
242
|
+
if mode == UIMode.POPUP:
|
243
|
+
if self.popup_bundle is None:
|
244
|
+
self.add_popups()
|
245
|
+
else:
|
246
|
+
for action_id in self.toolbar.bundles["popup_bundle"]:
|
247
|
+
self.toolbar.widgets[action_id].action.setVisible(True)
|
248
|
+
elif mode == UIMode.SIDE:
|
249
|
+
self.add_side_menus()
|
250
|
+
self.side_panel.show()
|
251
|
+
|
252
|
+
@SafeProperty(bool, doc="Enable popups setting dialogs for the plot widget.")
|
253
|
+
def enable_popups(self):
|
254
|
+
return self.ui_mode == UIMode.POPUP
|
255
|
+
|
256
|
+
@enable_popups.setter
|
257
|
+
def enable_popups(self, value: bool):
|
258
|
+
if value:
|
259
|
+
self.ui_mode = UIMode.POPUP
|
260
|
+
else:
|
261
|
+
if self.ui_mode == UIMode.POPUP:
|
262
|
+
self.ui_mode = UIMode.NONE
|
263
|
+
|
264
|
+
@SafeProperty(bool, doc="Show Side Panel")
|
265
|
+
def enable_side_panel(self) -> bool:
|
266
|
+
return self.ui_mode == UIMode.SIDE
|
267
|
+
|
268
|
+
@enable_side_panel.setter
|
269
|
+
def enable_side_panel(self, value: bool):
|
270
|
+
if value:
|
271
|
+
self.ui_mode = UIMode.SIDE
|
272
|
+
else:
|
273
|
+
if self.ui_mode == UIMode.SIDE:
|
274
|
+
self.ui_mode = UIMode.NONE
|
163
275
|
|
164
276
|
@SafeProperty(bool, doc="Show Toolbar")
|
165
277
|
def enable_toolbar(self) -> bool:
|
@@ -167,15 +279,22 @@ class PlotBase(BECWidget, QWidget):
|
|
167
279
|
|
168
280
|
@enable_toolbar.setter
|
169
281
|
def enable_toolbar(self, value: bool):
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
282
|
+
if value:
|
283
|
+
# Disable popup mode
|
284
|
+
if self._popups:
|
285
|
+
# Directly update the internal flag to avoid recursion
|
286
|
+
self._popups = False
|
287
|
+
# Hide the popup bundle if it exists and close any open dialogs
|
288
|
+
if self.popup_bundle is not None:
|
289
|
+
for action in self.toolbar.bundles["popup_bundle"].actions:
|
290
|
+
action.setVisible(False)
|
291
|
+
if self.axis_settings_dialog is not None and self.axis_settings_dialog.isVisible():
|
292
|
+
self.axis_settings_dialog.close()
|
293
|
+
self.side_panel.show()
|
294
|
+
# Add side menus if not already added
|
295
|
+
self.add_side_menus()
|
296
|
+
else:
|
297
|
+
self.side_panel.hide()
|
179
298
|
|
180
299
|
@SafeProperty(bool, doc="Enable the FPS monitor.")
|
181
300
|
def enable_fps_monitor(self) -> bool:
|
@@ -591,16 +710,34 @@ class PlotBase(BECWidget, QWidget):
|
|
591
710
|
item.ctrlMenu.deleteLater()
|
592
711
|
|
593
712
|
|
713
|
+
class DemoPlotBase(QMainWindow): # pragma: no cover:
|
714
|
+
def __init__(self):
|
715
|
+
super().__init__()
|
716
|
+
self.main_widget = QWidget()
|
717
|
+
self.setCentralWidget(self.main_widget)
|
718
|
+
self.main_widget.layout = QHBoxLayout(self.main_widget)
|
719
|
+
|
720
|
+
self.plot_popup = PlotBase(popups=True)
|
721
|
+
self.plot_popup.title = "PlotBase with popups"
|
722
|
+
self.plot_side_panels = PlotBase(popups=False)
|
723
|
+
self.plot_side_panels.title = "PlotBase with side panels"
|
724
|
+
|
725
|
+
self.plot_popup.plot_item.plot(np.random.rand(100), pen=(255, 0, 0))
|
726
|
+
self.plot_side_panels.plot_item.plot(np.random.rand(100), pen=(0, 255, 0))
|
727
|
+
|
728
|
+
self.main_widget.layout.addWidget(self.plot_side_panels)
|
729
|
+
self.main_widget.layout.addWidget(self.plot_popup)
|
730
|
+
|
731
|
+
self.resize(1400, 600)
|
732
|
+
|
733
|
+
|
594
734
|
if __name__ == "__main__": # pragma: no cover:
|
595
735
|
import sys
|
596
736
|
|
597
737
|
from qtpy.QtWidgets import QApplication
|
598
738
|
|
599
739
|
app = QApplication(sys.argv)
|
600
|
-
|
601
|
-
|
602
|
-
# Just some example data and parameters to test
|
603
|
-
widget.y_grid = True
|
604
|
-
widget.plot_item.plot([1, 2, 3, 4, 5], [1, 2, 3, 4, 5])
|
740
|
+
window = DemoPlotBase()
|
741
|
+
window.show()
|
605
742
|
|
606
743
|
sys.exit(app.exec_())
|
@@ -9,7 +9,7 @@ from bec_widgets.utils.widget_io import WidgetIO
|
|
9
9
|
|
10
10
|
|
11
11
|
class AxisSettings(SettingWidget):
|
12
|
-
def __init__(self, parent=None, target_widget=None, *args, **kwargs):
|
12
|
+
def __init__(self, parent=None, target_widget=None, popup=False, *args, **kwargs):
|
13
13
|
super().__init__(parent=parent, *args, **kwargs)
|
14
14
|
|
15
15
|
# This is a settings widget that depends on the target widget
|
@@ -18,9 +18,15 @@ class AxisSettings(SettingWidget):
|
|
18
18
|
self.setProperty("skip_settings", True)
|
19
19
|
self.setObjectName("AxisSettings")
|
20
20
|
current_path = os.path.dirname(__file__)
|
21
|
-
|
21
|
+
if popup:
|
22
|
+
form = UILoader().load_ui(
|
23
|
+
os.path.join(current_path, "axis_settings_horizontal.ui"), self
|
24
|
+
)
|
25
|
+
else:
|
26
|
+
form = UILoader().load_ui(os.path.join(current_path, "axis_settings_vertical.ui"), self)
|
22
27
|
|
23
28
|
self.target_widget = target_widget
|
29
|
+
self.popup = popup
|
24
30
|
|
25
31
|
# # Scroll area
|
26
32
|
self.scroll_area = QScrollArea(self)
|
@@ -34,10 +40,13 @@ class AxisSettings(SettingWidget):
|
|
34
40
|
# self.layout.addWidget(self.ui)
|
35
41
|
self.ui = form
|
36
42
|
|
37
|
-
self.
|
38
|
-
|
43
|
+
if self.target_widget is not None and self.popup is False:
|
44
|
+
self.connect_all_signals()
|
39
45
|
self.target_widget.property_changed.connect(self.update_property)
|
40
46
|
|
47
|
+
if self.popup is True:
|
48
|
+
self.fetch_all_properties()
|
49
|
+
|
41
50
|
def connect_all_signals(self):
|
42
51
|
for widget in [
|
43
52
|
self.ui.title,
|
@@ -93,3 +102,49 @@ class AxisSettings(SettingWidget):
|
|
93
102
|
was_blocked = widget_to_set.blockSignals(True)
|
94
103
|
WidgetIO.set_value(widget_to_set, value)
|
95
104
|
widget_to_set.blockSignals(was_blocked)
|
105
|
+
|
106
|
+
def fetch_all_properties(self):
|
107
|
+
"""
|
108
|
+
Fetch all properties from the target widget and update the settings widget.
|
109
|
+
"""
|
110
|
+
for widget in [
|
111
|
+
self.ui.title,
|
112
|
+
self.ui.inner_axes,
|
113
|
+
self.ui.outer_axes,
|
114
|
+
self.ui.x_label,
|
115
|
+
self.ui.x_min,
|
116
|
+
self.ui.x_max,
|
117
|
+
self.ui.x_log,
|
118
|
+
self.ui.x_grid,
|
119
|
+
self.ui.y_label,
|
120
|
+
self.ui.y_min,
|
121
|
+
self.ui.y_max,
|
122
|
+
self.ui.y_log,
|
123
|
+
self.ui.y_grid,
|
124
|
+
]:
|
125
|
+
property_name = widget.objectName()
|
126
|
+
value = getattr(self.target_widget, property_name)
|
127
|
+
WidgetIO.set_value(widget, value)
|
128
|
+
|
129
|
+
def accept_changes(self):
|
130
|
+
"""
|
131
|
+
Apply all properties from the settings widget to the target widget.
|
132
|
+
"""
|
133
|
+
for widget in [
|
134
|
+
self.ui.title,
|
135
|
+
self.ui.inner_axes,
|
136
|
+
self.ui.outer_axes,
|
137
|
+
self.ui.x_label,
|
138
|
+
self.ui.x_min,
|
139
|
+
self.ui.x_max,
|
140
|
+
self.ui.x_log,
|
141
|
+
self.ui.x_grid,
|
142
|
+
self.ui.y_label,
|
143
|
+
self.ui.y_min,
|
144
|
+
self.ui.y_max,
|
145
|
+
self.ui.y_log,
|
146
|
+
self.ui.y_grid,
|
147
|
+
]:
|
148
|
+
property_name = widget.objectName()
|
149
|
+
value = WidgetIO.get_value(widget)
|
150
|
+
setattr(self.target_widget, property_name, value)
|