bec-widgets 0.92.1__tar.gz → 0.94.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-0.94.4/CHANGELOG.md +155 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/PKG-INFO +2 -2
- bec_widgets-0.94.4/bec_widgets/assets/toolbar_icons/device_line_edit.svg +3 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/client.py +17 -12
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +1 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/main.py +2 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +3 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +2 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +1 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/qt_utils/settings_dialog.py +11 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/bec_dispatcher.py +3 -3
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/colors.py +3 -4
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_queue/bec_queue.py +18 -12
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_status_box/bec_status_box.py +10 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/color_button/color_button.py +7 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/dock/dock.py +22 -3
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/dock/dock_area.py +19 -5
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/figure.py +21 -16
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/image/image.py +23 -7
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +3 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/plot_base.py +8 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/waveform/waveform.py +7 -5
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/image/image_widget.py +2 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +9 -0
- bec_widgets-0.92.1/bec_widgets/widgets/device_box/device_box.py → bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_box.py +130 -17
- bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_box.pyproject +1 -0
- bec_widgets-0.92.1/bec_widgets/widgets/device_box/device_box.ui → bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_box.ui +30 -3
- bec_widgets-0.92.1/bec_widgets/widgets/device_box/device_box_plugin.py → bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +10 -11
- bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_control_line.py +33 -0
- bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +1 -0
- bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_control_line.ui +216 -0
- bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +58 -0
- bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/register_positioner_box.py +15 -0
- bec_widgets-0.94.4/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +17 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/scan_control/scan_group_box.py +54 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/spinner/spinner.py +5 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +17 -15
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_widget.py +0 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/website/website.py +6 -0
- bec_widgets-0.94.4/docs/developer/developer.md +50 -0
- bec_widgets-0.94.4/docs/developer/introduction/concepts.md +14 -0
- bec_widgets-0.92.1/docs/developer/getting_started/development.md → bec_widgets-0.94.4/docs/developer/introduction/contributing.md +5 -4
- bec_widgets-0.94.4/docs/developer/introduction/introduction.md +15 -0
- bec_widgets-0.92.1/docs/developer/widgets/widgets.md → bec_widgets-0.94.4/docs/developer/widget_development/widget_development.md +2 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/requirements.txt +1 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/getting_started/getting_started.md +1 -0
- bec_widgets-0.94.4/docs/user/getting_started/video_tutorials.md +17 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/pyproject.toml +2 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/end-2-end/test_bec_dock_rpc_e2e.py +13 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/end-2-end/test_bec_figure_rpc_e2e.py +9 -7
- bec_widgets-0.94.4/tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
- bec_widgets-0.94.4/tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
- bec_widgets-0.94.4/tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
- bec_widgets-0.94.4/tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
- bec_widgets-0.94.4/tests/unit_tests/conftest.py +64 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_dispatcher.py +2 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_dock.py +6 -5
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_figure.py +31 -24
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_image.py +15 -17
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_image_widget.py +0 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_motor_map.py +45 -22
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_queue.py +8 -8
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_color_map_selector.py +0 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_device_input_base.py +6 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_device_input_widgets.py +0 -6
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_motor_map_widget.py +0 -2
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_plot_base.py +9 -4
- bec_widgets-0.94.4/tests/unit_tests/test_positioner_box.py +130 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_ring_progress_bar.py +0 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_setting_dialog.py +8 -9
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_spinner.py +1 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_stop_button.py +0 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_text_box_widget.py +0 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_vscode_widget.py +2 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_waveform1d.py +46 -23
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_waveform_widget.py +199 -1
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_website_widget.py +0 -2
- bec_widgets-0.92.1/CHANGELOG.md +0 -145
- bec_widgets-0.92.1/bec_widgets/widgets/device_box/device_box.pyproject +0 -1
- bec_widgets-0.92.1/bec_widgets/widgets/device_box/register_device_box.py +0 -15
- bec_widgets-0.92.1/docs/developer/developer.md +0 -46
- bec_widgets-0.92.1/docs/developer/getting_started/getting_started.md +0 -12
- bec_widgets-0.92.1/tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
- bec_widgets-0.92.1/tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
- bec_widgets-0.92.1/tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
- bec_widgets-0.92.1/tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
- bec_widgets-0.92.1/tests/unit_tests/conftest.py +0 -32
- bec_widgets-0.92.1/tests/unit_tests/test_device_box.py +0 -98
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.git_hooks/pre-commit +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.gitignore +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.gitlab/issue_templates/bug_report_template.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.gitlab/issue_templates/documentation_update_template.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.gitlab/issue_templates/feature_request_template.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.gitlab/merge_request_templates/default.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.gitlab-ci.yml +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.pylintrc +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/.readthedocs.yaml +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/LICENSE +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/README.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/app_icons/terminal_icon.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/code.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/color_button.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/colormap_selector.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/device_combo_box.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/device_line_edit.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/dock_area.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/games.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/image.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/motor_map.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/position_indicator.png +0 -0
- /bec_widgets-0.92.1/bec_widgets/assets/designer_icons/device_box.png → /bec_widgets-0.94.4/bec_widgets/assets/designer_icons/positioner_box.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/queue.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/ring_progress.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/scan_control.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/spinner.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/status.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/stop.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/text.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/toggle.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/waveform.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/designer_icons/web.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/status_icons/error.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/status_icons/refresh.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/status_icons/running.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/status_icons/warning.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/add.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/attach_all.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/auto_range.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/compare.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/connection.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/drag_pan_mode.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/export.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/fft.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/fitting_parameters.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/history.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/image.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/image_autorange.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/import.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/line_axis.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/line_curve.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/lock_aspect_ratio.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/log_scale.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/motor_map.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/photo_library.svg +0 -0
- /bec_widgets-0.92.1/bec_widgets/assets/toolbar_icons/device_box.svg → /bec_widgets-0.94.4/bec_widgets/assets/toolbar_icons/positioner_box.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/progress.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/queue.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/rectangle_mode.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/remove.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/reset_settings.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/restore_state.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/ring_progress.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/rotate_left.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/rotate_right.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/save.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/save_state.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/scan_control.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/settings.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/status.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/terminal.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/transform.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/assets/toolbar_icons/waveform.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/auto_updates.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/rpc_register.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/qt_utils/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/qt_utils/error_popups.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/qt_utils/toolbar.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/base_classes/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/color_button/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/console/console.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/device_box → bec_widgets-0.94.4/bec_widgets/widgets/device_combobox}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/device_combobox → bec_widgets-0.94.4/bec_widgets/widgets/device_line_edit}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/dock/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/__init__.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/device_line_edit → bec_widgets-0.94.4/bec_widgets/widgets/figure/plots}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/figure/plots → bec_widgets-0.94.4/bec_widgets/widgets/figure/plots/image}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/figure/plots/image → bec_widgets-0.94.4/bec_widgets/widgets/figure/plots/motor_map}/__init__.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/figure/plots/motor_map → bec_widgets-0.94.4/bec_widgets/widgets/figure/plots/waveform}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/figure/plots/waveform → bec_widgets-0.94.4/bec_widgets/widgets/image}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/image → bec_widgets-0.94.4/bec_widgets/widgets/jupyter_console}/__init__.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/jupyter_console → bec_widgets-0.94.4/bec_widgets/widgets/motor_map}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/motor_map → bec_widgets-0.94.4/bec_widgets/widgets/motor_map/motor_map_dialog}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/motor_map/motor_map_dialog → bec_widgets-0.94.4/bec_widgets/widgets/position_indicator}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-0.92.1/bec_widgets/widgets/position_indicator → bec_widgets-0.94.4/bec_widgets/widgets/positioner_box}/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/scan_control/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/spinner/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/stop_button/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/text_box/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/text_box/text_box.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/toggle/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/toggle/toggle.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/vscode/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/vscode/vscode.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/website/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/website/register_website_widget.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/Makefile +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/_static/custom.css +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/_templates/custom-class-template.rst +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/_templates/custom-module-template.rst +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/api_reference/api_reference.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/assets/apps_48dp.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/assets/display_settings_48dp.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/assets/index_api.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/assets/index_contribute.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/assets/index_getting_started.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/assets/index_user_guide.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/assets/rocket_launch_48dp.svg +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/conf.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/index.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/introduction/introduction.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/make.bat +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/api_reference/api_reference.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/applications/applications.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/customisation.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/getting_started/BECDockArea.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/getting_started/auto_updates.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/getting_started/gui_complex_gui.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/getting_started/installation.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/getting_started/quick_start.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/user.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/BECFigure.png +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/bec_figure.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/bec_figure_dap.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/bec_status_box.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/bec_status_box.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/buttons.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/image_plot.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/motor.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/progress_bar.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/ring_progress_bar.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/scan_control.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/scan_control.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/scatter_2D.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/text_box.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/w1D.gif +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/website.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/docs/user/widgets/widgets.md +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/end-2-end/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/end-2-end/conftest.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/end-2-end/test_scan_control_e2e.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/client_mocks.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_connector.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_bec_status_box.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_client_utils.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_color_validation.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_configs/config_device.yaml +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_crosshair.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_error_utils.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_generate_cli_client.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_generate_plugin.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_msgs/__init__.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_plugin_utils.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_rpc_register.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_rpc_server.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_scan_control.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_scan_control_group_box.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_toggle.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_widget_io.py +0 -0
- {bec_widgets-0.92.1 → bec_widgets-0.94.4}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -0,0 +1,155 @@
|
|
1
|
+
# CHANGELOG
|
2
|
+
|
3
|
+
## v0.94.4 (2024-08-14)
|
4
|
+
|
5
|
+
### Documentation
|
6
|
+
|
7
|
+
* docs: review developer section; add introduction ([`2af5c94`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2af5c94913a3435c1839034df4f45f885b56d08b))
|
8
|
+
|
9
|
+
### Fix
|
10
|
+
|
11
|
+
* fix: do not shutdown client in "close"
|
12
|
+
|
13
|
+
Terminating client connections has to be done at the application level ([`198c1d1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/198c1d1064cc2dae55de4b941929341faddacb28))
|
14
|
+
|
15
|
+
## v0.94.3 (2024-08-13)
|
16
|
+
|
17
|
+
### Fix
|
18
|
+
|
19
|
+
* fix(curve_dialog): async curves are shown in curve dialog after addition. ([`7aeb2b5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7aeb2b5c26c7c2851e8d663d32521da8daec95ef))
|
20
|
+
|
21
|
+
* fix(waveform): async device entry is correctly passed, updated and with new scan the previous data are cleared ([`d56ea95`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d56ea95ef97bfdd0bc3eeddc4505d20b38e28559))
|
22
|
+
|
23
|
+
### Test
|
24
|
+
|
25
|
+
* test(waveform_widget): added tests for axis setting and curve dialog ([`f285b35`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f285b35b491660549e74349318119f7c2c44f619))
|
26
|
+
|
27
|
+
## v0.94.2 (2024-08-13)
|
28
|
+
|
29
|
+
### Fix
|
30
|
+
|
31
|
+
* fix(image): image is single image mode do not raise popup error when connected twice with the same monitor ([`98b79aa`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/98b79aac7b47b73137f4d582f7f1d552b1d95366))
|
32
|
+
|
33
|
+
## v0.94.1 (2024-08-12)
|
34
|
+
|
35
|
+
### Fix
|
36
|
+
|
37
|
+
* fix: issue #292, wrong key was used to clean _slots internal dictionary ([`93d3977`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/93d397759c756397604ebff5e24f3a580be8620d))
|
38
|
+
|
39
|
+
## v0.94.0 (2024-08-08)
|
40
|
+
|
41
|
+
### Feature
|
42
|
+
|
43
|
+
* feat: add PositionerControlLine ([`c80a7cd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c80a7cd1083baa9543a2cee2e3c3a51dfd209b19))
|
44
|
+
|
45
|
+
### Refactor
|
46
|
+
|
47
|
+
* refactor: adjust dimensions ([`0273bf4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0273bf485694609325b5b556a3c69fb53c18446e))
|
48
|
+
|
49
|
+
## v0.93.5 (2024-08-08)
|
50
|
+
|
51
|
+
### Fix
|
52
|
+
|
53
|
+
* fix(positioner_box): icons fixed ([`281633d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/281633deff15b6879dac3a4f0770fa6949aaecdc))
|
54
|
+
|
55
|
+
### Refactor
|
56
|
+
|
57
|
+
* refactor: add button for positioner selection ([`0d190c5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0d190c5c5996e59fec4bdd44d2003e10e200b009))
|
58
|
+
|
59
|
+
### Test
|
60
|
+
|
61
|
+
* test(dap): wait for fit ([`6269009`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6269009e5451f830cdee58a514c7858483488a8d))
|
62
|
+
|
63
|
+
* test(auto-update): wait for rendering ([`6d2442d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6d2442d23c683fe92af13df982ce681c07e99cde))
|
64
|
+
|
65
|
+
## v0.93.4 (2024-08-07)
|
66
|
+
|
67
|
+
### Fix
|
68
|
+
|
69
|
+
* fix: rename DeviceBox to PositionerBox, fix test for validation ([`37aa371`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/37aa371e7c4c62d70abf37abc125db0c088790fe))
|
70
|
+
|
71
|
+
* fix: add validation for bec_lib.device.Positioner; closes #268 ([`eb54e9f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/eb54e9f788e97af23db8fe0c78f8facb8688bb99))
|
72
|
+
|
73
|
+
## v0.93.3 (2024-08-07)
|
74
|
+
|
75
|
+
### Fix
|
76
|
+
|
77
|
+
* fix(dock): properly shut down docks and temp areas ([`99ee545`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/99ee545e41c6078654958b668b5b329f85553d16))
|
78
|
+
|
79
|
+
* fix(settings): shut down settings dialog ([`b50b3a2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b50b3a27e68956e10e8169a0aa698c911d2d9642))
|
80
|
+
|
81
|
+
* fix(website): fixed teardown of website widgets ([`a3d4f5a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a3d4f5ac4bc52acfed2791a1724fade6972ed320))
|
82
|
+
|
83
|
+
* fix(dock): properly shut down docks and dock areas ([`bc26497`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/bc264975b1363c9dfea516621d7878c320677d15))
|
84
|
+
|
85
|
+
* fix(figure): cleanup pyqtgraph ([`ad07bbf`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ad07bbf85e9c8d9838bdd686f69d41c235b7db19))
|
86
|
+
|
87
|
+
### Test
|
88
|
+
|
89
|
+
* test: removed quit from teardown ([`cf94599`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cf94599c2544d6831c8afbe7b340082077557ed1))
|
90
|
+
|
91
|
+
* test: removed explicit call to close the widget ([`bf6294e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/bf6294ecbfd494565d2dc215e4d7e0c280ac7745))
|
92
|
+
|
93
|
+
* test: use factory instead of fixture to properly cleanup widgets on teardown ([`9856857`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9856857f4cc7fa229c10d00fbae4452464a207cb))
|
94
|
+
|
95
|
+
* test: ensure all toplevelwidgets are closed ([`f9e5897`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f9e58979009cf632feea529700ad191401dd7eb8))
|
96
|
+
|
97
|
+
## v0.93.2 (2024-08-07)
|
98
|
+
|
99
|
+
### Fix
|
100
|
+
|
101
|
+
* fix(scan_group_box): Scan Spinboxes limits increased to max allowed values; setting dialog for step size and decimal precision for ScanDoubleSpinBox on right click ([`a372925`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a372925fffa787c686198ae7cb3f9c15b459c109))
|
102
|
+
|
103
|
+
## v0.93.1 (2024-08-06)
|
104
|
+
|
105
|
+
### Documentation
|
106
|
+
|
107
|
+
* docs: added video tutorial section with BSEG YT video ([`302ae90`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/302ae90139f6a88e2401fe29fe312387486e27a9))
|
108
|
+
|
109
|
+
### Fix
|
110
|
+
|
111
|
+
* fix(dock): docks have more recognizable red icon for closing docks ([`af86860`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/af86860bf35474805fb1a7bc3725cf8835ed4cc7))
|
112
|
+
|
113
|
+
## v0.93.0 (2024-08-05)
|
114
|
+
|
115
|
+
### Feature
|
116
|
+
|
117
|
+
* feat(themes): moved themes to bec_qthemes
|
118
|
+
|
119
|
+
This reverts commit fd6ae91993a23a7b8dbb2cf3c4b7c3eda6d2b0f6 ([`5aad401`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5aad401ef8774c7330784f72cd3b9d8c253e2b6a))
|
120
|
+
|
121
|
+
## v0.92.5 (2024-08-05)
|
122
|
+
|
123
|
+
### Fix
|
124
|
+
|
125
|
+
* fix(spinner): stop timer on close event ([`30fef92`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/30fef929cf6fb4b73f48151c92a0ee54c734031d))
|
126
|
+
|
127
|
+
* fix(status_box): fix cleanup of status box ([`1f30dd7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f30dd73a9c1e3135087a5eef92c7329f54a604e))
|
128
|
+
|
129
|
+
### Refactor
|
130
|
+
|
131
|
+
* refactor(queue): refactored bec queue to inherit only from qwidget ([`7616ca0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7616ca0e145e233ccb48029a8c0b54b54b5b4194))
|
132
|
+
|
133
|
+
### Test
|
134
|
+
|
135
|
+
* test: register all widgets with qtbot and close them ([`73cd11e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/73cd11e47277e4437554b785a9551b28a572094f))
|
136
|
+
|
137
|
+
## v0.92.4 (2024-07-31)
|
138
|
+
|
139
|
+
### Fix
|
140
|
+
|
141
|
+
* fix: fix missmatch of signal/slot in image and motormap ([`dcc5fd7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/dcc5fd71ee9f51767a7b2b1ed6200e89d1ef754c))
|
142
|
+
|
143
|
+
## v0.92.3 (2024-07-28)
|
144
|
+
|
145
|
+
### Fix
|
146
|
+
|
147
|
+
* fix(docs): moved to pyside6 ([`71873dd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/71873ddf359516ded8f74f4d2f73df4156aa1368))
|
148
|
+
|
149
|
+
## v0.92.2 (2024-07-28)
|
150
|
+
|
151
|
+
### Fix
|
152
|
+
|
153
|
+
* fix(widgets): fixed import for tictactoe example ([`995a795`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/995a795060bebe25c17108d80ae0fa30463f03b1))
|
154
|
+
|
155
|
+
## v0.92.1 (2024-07-28)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.3
|
2
2
|
Name: bec_widgets
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.94.4
|
4
4
|
Summary: BEC Widgets
|
5
5
|
Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
|
6
6
|
Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
|
@@ -11,12 +11,12 @@ Classifier: Topic :: Scientific/Engineering
|
|
11
11
|
Requires-Python: >=3.10
|
12
12
|
Requires-Dist: bec-ipython-client~=2.16
|
13
13
|
Requires-Dist: bec-lib~=2.16
|
14
|
+
Requires-Dist: bec-qthemes~=0.0
|
14
15
|
Requires-Dist: black~=24.0
|
15
16
|
Requires-Dist: isort>=5.13.2,~=5.13
|
16
17
|
Requires-Dist: pydantic~=2.0
|
17
18
|
Requires-Dist: pyqtgraph~=0.13
|
18
19
|
Requires-Dist: pyte
|
19
|
-
Requires-Dist: qdarkstyle>=3.2.2
|
20
20
|
Requires-Dist: qtconsole>=5.5.1,~=5.5
|
21
21
|
Requires-Dist: qtpy~=2.4
|
22
22
|
Provides-Extra: dev
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M180-404.87v-50.26h289.75v50.26H180Zm0-162.57v-50.25h454.62v50.25H180Zm0-162.3V-780h454.62v50.26H180ZM524.62-180v-105.69l217.15-216.16q7.46-7.07 16.11-10.3 8.65-3.23 17.3-3.23 9.43 0 18.25 3.53 8.82 3.54 16.03 10.62l37 37.38q6.87 7.47 10.21 16.16Q860-439 860-430.31t-3.37 17.69q-3.37 9-10.52 16.46L630.31-180H524.62Zm250.69-211.69 37-38.62-37-37.38-38 38 38 38Z"/>
|
3
|
+
</svg>
|
@@ -21,9 +21,10 @@ class Widgets(str, enum.Enum):
|
|
21
21
|
BECQueue = "BECQueue"
|
22
22
|
BECStatusBox = "BECStatusBox"
|
23
23
|
BECWaveformWidget = "BECWaveformWidget"
|
24
|
-
DeviceBox = "DeviceBox"
|
25
24
|
DeviceComboBox = "DeviceComboBox"
|
26
25
|
DeviceLineEdit = "DeviceLineEdit"
|
26
|
+
PositionerBox = "PositionerBox"
|
27
|
+
PositionerControlLine = "PositionerControlLine"
|
27
28
|
RingProgressBar = "RingProgressBar"
|
28
29
|
ScanControl = "ScanControl"
|
29
30
|
StopButton = "StopButton"
|
@@ -2287,7 +2288,7 @@ class BECWaveformWidget(RPCBase):
|
|
2287
2288
|
"""
|
2288
2289
|
|
2289
2290
|
|
2290
|
-
class
|
2291
|
+
class DeviceComboBox(RPCBase):
|
2291
2292
|
@property
|
2292
2293
|
@rpc_call
|
2293
2294
|
def _config_dict(self) -> "dict":
|
@@ -2305,7 +2306,7 @@ class DeviceBox(RPCBase):
|
|
2305
2306
|
"""
|
2306
2307
|
|
2307
2308
|
|
2308
|
-
class
|
2309
|
+
class DeviceInputBase(RPCBase):
|
2309
2310
|
@property
|
2310
2311
|
@rpc_call
|
2311
2312
|
def _config_dict(self) -> "dict":
|
@@ -2323,7 +2324,7 @@ class DeviceComboBox(RPCBase):
|
|
2323
2324
|
"""
|
2324
2325
|
|
2325
2326
|
|
2326
|
-
class
|
2327
|
+
class DeviceLineEdit(RPCBase):
|
2327
2328
|
@property
|
2328
2329
|
@rpc_call
|
2329
2330
|
def _config_dict(self) -> "dict":
|
@@ -2341,21 +2342,25 @@ class DeviceInputBase(RPCBase):
|
|
2341
2342
|
"""
|
2342
2343
|
|
2343
2344
|
|
2344
|
-
class
|
2345
|
-
@property
|
2345
|
+
class PositionerBox(RPCBase):
|
2346
2346
|
@rpc_call
|
2347
|
-
def
|
2347
|
+
def set_positioner(self, positioner: str):
|
2348
2348
|
"""
|
2349
|
-
|
2349
|
+
Set the device
|
2350
2350
|
|
2351
|
-
|
2352
|
-
|
2351
|
+
Args:
|
2352
|
+
positioner (Positioner | str) : Positioner to set, accepts str or the device
|
2353
2353
|
"""
|
2354
2354
|
|
2355
|
+
|
2356
|
+
class PositionerControlLine(RPCBase):
|
2355
2357
|
@rpc_call
|
2356
|
-
def
|
2358
|
+
def set_positioner(self, positioner: str):
|
2357
2359
|
"""
|
2358
|
-
|
2360
|
+
Set the device
|
2361
|
+
|
2362
|
+
Args:
|
2363
|
+
positioner (Positioner | str) : Positioner to set, accepts str or the device
|
2359
2364
|
"""
|
2360
2365
|
|
2361
2366
|
|
{bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/examples/plugin_example_pyside/main.py
RENAMED
@@ -7,7 +7,8 @@ import sys
|
|
7
7
|
|
8
8
|
from bec_ipython_client.main import BECIPythonClient
|
9
9
|
from qtpy.QtWidgets import QApplication
|
10
|
-
|
10
|
+
|
11
|
+
from bec_widgets.examples.plugin_example_pyside.tictactoe import TicTacToe
|
11
12
|
|
12
13
|
if __name__ == "__main__": # pragma: no cover
|
13
14
|
app = QApplication(sys.argv)
|
@@ -2,8 +2,9 @@
|
|
2
2
|
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
3
3
|
|
4
4
|
from qtpy.QtDesigner import QPyDesignerCustomWidgetCollection
|
5
|
-
|
6
|
-
from
|
5
|
+
|
6
|
+
from bec_widgets.examples.plugin_example_pyside.tictactoe import TicTacToe
|
7
|
+
from bec_widgets.examples.plugin_example_pyside.tictactoeplugin import TicTacToePlugin
|
7
8
|
|
8
9
|
# Set PYSIDE_DESIGNER_PLUGINS to point to this directory and load the plugin
|
9
10
|
|
@@ -4,10 +4,10 @@ import os
|
|
4
4
|
|
5
5
|
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
6
6
|
from qtpy.QtGui import QIcon
|
7
|
-
from tictactoe import TicTacToe
|
8
|
-
from tictactoetaskmenu import TicTacToeTaskMenuFactory
|
9
7
|
|
10
8
|
import bec_widgets
|
9
|
+
from bec_widgets.examples.plugin_example_pyside.tictactoe import TicTacToe
|
10
|
+
from bec_widgets.examples.plugin_example_pyside.tictactoetaskmenu import TicTacToeTaskMenuFactory
|
11
11
|
|
12
12
|
DOM_XML = """
|
13
13
|
<ui language='c++'>
|
@@ -4,8 +4,8 @@
|
|
4
4
|
from qtpy.QtDesigner import QExtensionFactory, QPyDesignerTaskMenuExtension
|
5
5
|
from qtpy.QtGui import QAction
|
6
6
|
from qtpy.QtWidgets import QDialog, QDialogButtonBox, QVBoxLayout
|
7
|
-
from tictactoe import TicTacToe
|
8
7
|
|
8
|
+
from bec_widgets.examples.plugin_example_pyside.tictactoe import TicTacToe
|
9
9
|
from bec_widgets.qt_utils.error_popups import SafeSlot as Slot
|
10
10
|
|
11
11
|
|
@@ -106,3 +106,14 @@ class SettingsDialog(QDialog):
|
|
106
106
|
Apply the changes made in the settings widget without closing the dialog.
|
107
107
|
"""
|
108
108
|
self.widget.accept_changes()
|
109
|
+
|
110
|
+
def cleanup(self):
|
111
|
+
"""
|
112
|
+
Cleanup the dialog.
|
113
|
+
"""
|
114
|
+
self.button_box.close()
|
115
|
+
self.button_box.deleteLater()
|
116
|
+
|
117
|
+
def closeEvent(self, event):
|
118
|
+
self.cleanup()
|
119
|
+
super().closeEvent(event)
|
@@ -162,9 +162,9 @@ class BECDispatcher:
|
|
162
162
|
return
|
163
163
|
self.client.connector.unregister(topics, cb=connected_slot)
|
164
164
|
topics_str, _ = self.client.connector._convert_endpointinfo(topics)
|
165
|
-
self._slots[
|
166
|
-
if not self._slots[
|
167
|
-
del self._slots[
|
165
|
+
self._slots[connected_slot].difference_update(set(topics_str))
|
166
|
+
if not self._slots[connected_slot]:
|
167
|
+
del self._slots[connected_slot]
|
168
168
|
|
169
169
|
def disconnect_topics(self, topics: Union[str, list]):
|
170
170
|
self.client.connector.unregister(topics)
|
@@ -2,11 +2,10 @@ import itertools
|
|
2
2
|
import re
|
3
3
|
from typing import Literal
|
4
4
|
|
5
|
+
import bec_qthemes
|
5
6
|
import numpy as np
|
6
7
|
import pyqtgraph as pg
|
7
|
-
import qdarkstyle
|
8
8
|
from pydantic_core import PydanticCustomError
|
9
|
-
from qdarkstyle import DarkPalette, LightPalette
|
10
9
|
from qtpy.QtGui import QColor
|
11
10
|
from qtpy.QtWidgets import QApplication
|
12
11
|
|
@@ -14,7 +13,7 @@ CURRENT_THEME = "dark"
|
|
14
13
|
|
15
14
|
|
16
15
|
def get_theme_palette():
|
17
|
-
return
|
16
|
+
return bec_qthemes.load_palette(CURRENT_THEME)
|
18
17
|
|
19
18
|
|
20
19
|
def apply_theme(theme: Literal["dark", "light"]):
|
@@ -30,7 +29,7 @@ def apply_theme(theme: Literal["dark", "light"]):
|
|
30
29
|
pg_widget.setBackground("k" if theme == "dark" else "w")
|
31
30
|
|
32
31
|
# now define stylesheet according to theme and apply it
|
33
|
-
style =
|
32
|
+
style = bec_qthemes.load_stylesheet(theme)
|
34
33
|
app.setStyleSheet(style)
|
35
34
|
|
36
35
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
from bec_lib.endpoints import MessageEndpoints
|
2
2
|
from qtpy.QtCore import Qt, Slot
|
3
|
-
from qtpy.QtWidgets import QHeaderView, QTableWidget, QTableWidgetItem, QWidget
|
3
|
+
from qtpy.QtWidgets import QHBoxLayout, QHeaderView, QTableWidget, QTableWidgetItem, QWidget
|
4
4
|
|
5
5
|
from bec_widgets.utils.bec_connector import ConnectionConfig
|
6
6
|
from bec_widgets.utils.bec_widget import BECWidget
|
7
7
|
|
8
8
|
|
9
|
-
class BECQueue(BECWidget,
|
9
|
+
class BECQueue(BECWidget, QWidget):
|
10
10
|
"""
|
11
11
|
Widget to display the BEC queue.
|
12
12
|
"""
|
@@ -19,10 +19,14 @@ class BECQueue(BECWidget, QTableWidget):
|
|
19
19
|
gui_id: str = None,
|
20
20
|
):
|
21
21
|
super().__init__(client, config, gui_id)
|
22
|
-
|
23
|
-
self.
|
24
|
-
self.
|
25
|
-
|
22
|
+
QWidget.__init__(self, parent=parent)
|
23
|
+
self.table = QTableWidget(self)
|
24
|
+
self.layout = QHBoxLayout(self)
|
25
|
+
self.layout.addWidget(self.table)
|
26
|
+
|
27
|
+
self.table.setColumnCount(3)
|
28
|
+
self.table.setHorizontalHeaderLabels(["Scan Number", "Type", "Status"])
|
29
|
+
header = self.table.horizontalHeader()
|
26
30
|
header.setSectionResizeMode(QHeaderView.Stretch)
|
27
31
|
self.bec_dispatcher.connect_slot(self.update_queue, MessageEndpoints.scan_queue_status())
|
28
32
|
self.reset_content()
|
@@ -38,8 +42,8 @@ class BECQueue(BECWidget, QTableWidget):
|
|
38
42
|
"""
|
39
43
|
# only show the primary queue for now
|
40
44
|
queue_info = content.get("queue", {}).get("primary", {}).get("info", [])
|
41
|
-
self.setRowCount(len(queue_info))
|
42
|
-
self.clearContents()
|
45
|
+
self.table.setRowCount(len(queue_info))
|
46
|
+
self.table.clearContents()
|
43
47
|
|
44
48
|
if not queue_info:
|
45
49
|
self.reset_content()
|
@@ -73,6 +77,8 @@ class BECQueue(BECWidget, QTableWidget):
|
|
73
77
|
Returns:
|
74
78
|
QTableWidgetItem: The formatted item.
|
75
79
|
"""
|
80
|
+
if not content or not isinstance(content, str):
|
81
|
+
content = ""
|
76
82
|
item = QTableWidgetItem(content)
|
77
83
|
item.setTextAlignment(Qt.AlignHCenter | Qt.AlignVCenter)
|
78
84
|
return item
|
@@ -88,16 +94,16 @@ class BECQueue(BECWidget, QTableWidget):
|
|
88
94
|
status (str): The status.
|
89
95
|
"""
|
90
96
|
|
91
|
-
self.setItem(index, 0, self.format_item(scan_number))
|
92
|
-
self.setItem(index, 1, self.format_item(scan_type))
|
93
|
-
self.setItem(index, 2, self.format_item(status))
|
97
|
+
self.table.setItem(index, 0, self.format_item(scan_number))
|
98
|
+
self.table.setItem(index, 1, self.format_item(scan_type))
|
99
|
+
self.table.setItem(index, 2, self.format_item(status))
|
94
100
|
|
95
101
|
def reset_content(self):
|
96
102
|
"""
|
97
103
|
Reset the content of the table.
|
98
104
|
"""
|
99
105
|
|
100
|
-
self.setRowCount(1)
|
106
|
+
self.table.setRowCount(1)
|
101
107
|
self.set_row(0, "", "", "")
|
102
108
|
|
103
109
|
|
{bec_widgets-0.92.1 → bec_widgets-0.94.4}/bec_widgets/widgets/bec_status_box/bec_status_box.py
RENAMED
@@ -56,6 +56,11 @@ class BECServiceStatusMixin(QObject):
|
|
56
56
|
self.client._update_existing_services()
|
57
57
|
self.services_update.emit(self.client._services_info, self.client._services_metric)
|
58
58
|
|
59
|
+
def cleanup(self):
|
60
|
+
"""Cleanup the BECServiceStatusMixin."""
|
61
|
+
self._service_update_timer.stop()
|
62
|
+
self._service_update_timer.deleteLater()
|
63
|
+
|
59
64
|
|
60
65
|
class BECStatusBox(BECWidget, QWidget):
|
61
66
|
"""An autonomous widget to display the status of BEC services.
|
@@ -290,6 +295,11 @@ class BECStatusBox(BECWidget, QWidget):
|
|
290
295
|
if objects["item"] == item:
|
291
296
|
objects["widget"].show_popup()
|
292
297
|
|
298
|
+
def cleanup(self):
|
299
|
+
"""Cleanup the BECStatusBox widget."""
|
300
|
+
self.bec_service_status.cleanup()
|
301
|
+
return super().cleanup()
|
302
|
+
|
293
303
|
|
294
304
|
def main():
|
295
305
|
"""Main method to run the BECStatusBox widget."""
|
@@ -4,6 +4,7 @@ from typing import TYPE_CHECKING, Any, Literal, Optional
|
|
4
4
|
|
5
5
|
from pydantic import Field
|
6
6
|
from pyqtgraph.dockarea import Dock, DockLabel
|
7
|
+
from qtpy import QtCore, QtGui
|
7
8
|
|
8
9
|
from bec_widgets.cli.rpc_wigdet_handler import widget_handler
|
9
10
|
from bec_widgets.utils import ConnectionConfig, GridLayoutManager
|
@@ -12,8 +13,6 @@ from bec_widgets.utils.bec_widget import BECWidget
|
|
12
13
|
if TYPE_CHECKING:
|
13
14
|
from qtpy.QtWidgets import QWidget
|
14
15
|
|
15
|
-
from bec_widgets.widgets.dock import BECDockArea
|
16
|
-
|
17
16
|
|
18
17
|
class DockConfig(ConnectionConfig):
|
19
18
|
widgets: dict[str, Any] = Field({}, description="The widgets in the dock.")
|
@@ -26,6 +25,23 @@ class DockConfig(ConnectionConfig):
|
|
26
25
|
|
27
26
|
|
28
27
|
class CustomDockLabel(DockLabel):
|
28
|
+
def __init__(self, text: str, closable: bool = True):
|
29
|
+
super().__init__(text, closable)
|
30
|
+
if closable:
|
31
|
+
red_icon = QtGui.QIcon()
|
32
|
+
pixmap = QtGui.QPixmap(32, 32)
|
33
|
+
pixmap.fill(QtCore.Qt.GlobalColor.red)
|
34
|
+
painter = QtGui.QPainter(pixmap)
|
35
|
+
pen = QtGui.QPen(QtCore.Qt.GlobalColor.white)
|
36
|
+
pen.setWidth(2)
|
37
|
+
painter.setPen(pen)
|
38
|
+
painter.drawLine(8, 8, 24, 24)
|
39
|
+
painter.drawLine(24, 8, 8, 24)
|
40
|
+
painter.end()
|
41
|
+
red_icon.addPixmap(pixmap)
|
42
|
+
|
43
|
+
self.closeButton.setIcon(red_icon)
|
44
|
+
|
29
45
|
def updateStyle(self):
|
30
46
|
r = "3px"
|
31
47
|
if self.dim:
|
@@ -137,6 +153,7 @@ class BECDock(BECWidget, Dock):
|
|
137
153
|
super().dropEvent(event)
|
138
154
|
if old_area in self.orig_area.tempAreas and old_area != self.orig_area:
|
139
155
|
self.orig_area.removeTempArea(old_area)
|
156
|
+
old_area.window().deleteLater()
|
140
157
|
|
141
158
|
def float(self):
|
142
159
|
"""
|
@@ -268,7 +285,7 @@ class BECDock(BECWidget, Dock):
|
|
268
285
|
"""
|
269
286
|
Attach the dock to the parent dock area.
|
270
287
|
"""
|
271
|
-
self.
|
288
|
+
self.parent_dock_area.remove_temp_area(self.area)
|
272
289
|
|
273
290
|
def detach(self):
|
274
291
|
"""
|
@@ -303,6 +320,8 @@ class BECDock(BECWidget, Dock):
|
|
303
320
|
if hasattr(widget, "cleanup"):
|
304
321
|
widget.cleanup()
|
305
322
|
self.widgets.clear()
|
323
|
+
self.label.close()
|
324
|
+
self.label.deleteLater()
|
306
325
|
super().cleanup()
|
307
326
|
|
308
327
|
def close(self):
|
@@ -83,8 +83,8 @@ class BECDockArea(BECWidget, QWidget):
|
|
83
83
|
"scan_control": IconAction(
|
84
84
|
icon_path="scan_control.svg", tooltip="Add Scan Control"
|
85
85
|
),
|
86
|
-
"
|
87
|
-
icon_path="
|
86
|
+
"positioner_box": IconAction(
|
87
|
+
icon_path="positioner_box.svg", tooltip="Add Device Box"
|
88
88
|
),
|
89
89
|
},
|
90
90
|
),
|
@@ -132,8 +132,8 @@ class BECDockArea(BECWidget, QWidget):
|
|
132
132
|
self.toolbar.widgets["menu_devices"].widgets["scan_control"].triggered.connect(
|
133
133
|
lambda: self.add_dock(widget="ScanControl", prefix="scan_control")
|
134
134
|
)
|
135
|
-
self.toolbar.widgets["menu_devices"].widgets["
|
136
|
-
lambda: self.add_dock(widget="
|
135
|
+
self.toolbar.widgets["menu_devices"].widgets["positioner_box"].triggered.connect(
|
136
|
+
lambda: self.add_dock(widget="PositionerBox", prefix="positioner_box")
|
137
137
|
)
|
138
138
|
|
139
139
|
# Menu Utils
|
@@ -231,6 +231,7 @@ class BECDockArea(BECWidget, QWidget):
|
|
231
231
|
self.config.docks.pop(name, None)
|
232
232
|
if dock:
|
233
233
|
dock.close()
|
234
|
+
dock.deleteLater()
|
234
235
|
if len(self.dock_area.docks) <= 1:
|
235
236
|
for dock in self.dock_area.docks.values():
|
236
237
|
dock.hide_title_bar()
|
@@ -329,7 +330,16 @@ class BECDockArea(BECWidget, QWidget):
|
|
329
330
|
"""
|
330
331
|
while self.dock_area.tempAreas:
|
331
332
|
for temp_area in self.dock_area.tempAreas:
|
332
|
-
self.
|
333
|
+
self.remove_temp_area(temp_area)
|
334
|
+
|
335
|
+
def remove_temp_area(self, area):
|
336
|
+
"""
|
337
|
+
Remove a temporary area from the dock area.
|
338
|
+
This is a patched method of pyqtgraph's removeTempArea
|
339
|
+
"""
|
340
|
+
self.dock_area.tempAreas.remove(area)
|
341
|
+
area.window().close()
|
342
|
+
area.window().deleteLater()
|
333
343
|
|
334
344
|
def clear_all(self):
|
335
345
|
"""
|
@@ -345,6 +355,10 @@ class BECDockArea(BECWidget, QWidget):
|
|
345
355
|
Cleanup the dock area.
|
346
356
|
"""
|
347
357
|
self.clear_all()
|
358
|
+
self.toolbar.close()
|
359
|
+
self.toolbar.deleteLater()
|
360
|
+
self.dock_area.close()
|
361
|
+
self.dock_area.deleteLater()
|
348
362
|
super().cleanup()
|
349
363
|
|
350
364
|
def close(self):
|
@@ -513,6 +513,13 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
|
|
513
513
|
if widget_id in self._widgets:
|
514
514
|
raise ValueError(f"Widget with ID '{widget_id}' already exists.")
|
515
515
|
|
516
|
+
# Check if position is occupied
|
517
|
+
if row is not None and col is not None:
|
518
|
+
if self.getItem(row, col):
|
519
|
+
raise ValueError(f"Position at row {row} and column {col} is already occupied.")
|
520
|
+
else:
|
521
|
+
row, col = self._find_next_empty_position()
|
522
|
+
|
516
523
|
widget = self.widget_handler.create_widget(
|
517
524
|
widget_type=widget_type,
|
518
525
|
widget_id=widget_id,
|
@@ -525,23 +532,11 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
|
|
525
532
|
# used otherwise multiple times
|
526
533
|
widget.set_gui_id(widget_id)
|
527
534
|
|
528
|
-
|
529
|
-
|
530
|
-
if self.getItem(row, col):
|
531
|
-
raise ValueError(f"Position at row {row} and column {col} is already occupied.")
|
532
|
-
|
533
|
-
widget.config.row = row
|
534
|
-
widget.config.col = col
|
535
|
-
|
536
|
-
# Add widget to the figure
|
537
|
-
self.addItem(widget, row=row, col=col)
|
538
|
-
else:
|
539
|
-
row, col = self._find_next_empty_position()
|
540
|
-
widget.config.row = row
|
541
|
-
widget.config.col = col
|
535
|
+
widget.config.row = row
|
536
|
+
widget.config.col = col
|
542
537
|
|
543
|
-
|
544
|
-
|
538
|
+
# Add widget to the figure
|
539
|
+
self.addItem(widget, row=row, col=col)
|
545
540
|
|
546
541
|
# Update num_cols and num_rows based on the added widget
|
547
542
|
self.config.num_rows = max(self.config.num_rows, row + 1)
|
@@ -620,6 +615,7 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
|
|
620
615
|
"""
|
621
616
|
if widget_id in self._widgets:
|
622
617
|
widget = self._widgets.pop(widget_id)
|
618
|
+
widget.cleanup_pyqtgraph()
|
623
619
|
widget.cleanup()
|
624
620
|
self.removeItem(widget)
|
625
621
|
self.grid[widget.config.row][widget.config.col] = None
|
@@ -745,3 +741,12 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
|
|
745
741
|
self.config = FigureConfig(
|
746
742
|
widget_class=self.__class__.__name__, gui_id=self.gui_id, theme=theme
|
747
743
|
)
|
744
|
+
|
745
|
+
def cleanup_pyqtgraph_all_widgets(self):
|
746
|
+
"""Clean up the pyqtgraph widget."""
|
747
|
+
for widget in self.widget_list:
|
748
|
+
widget.cleanup_pyqtgraph()
|
749
|
+
|
750
|
+
def cleanup(self):
|
751
|
+
"""Close the figure widget."""
|
752
|
+
self.cleanup_pyqtgraph_all_widgets()
|