bec-widgets 0.97.0__tar.gz → 0.99.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/CHANGELOG.md +48 -34
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/PKG-INFO +1 -1
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/client.py +10 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/qt_utils/toolbar.py +24 -23
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/colors.py +30 -6
- bec_widgets-0.99.0/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +71 -0
- bec_widgets-0.99.0/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject +1 -0
- bec_widgets-0.99.0/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +54 -0
- bec_widgets-0.99.0/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +15 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/dock/dock_area.py +46 -21
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/figure.py +0 -1
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/image/image_widget.py +28 -28
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/motor_map/motor_map_widget.py +6 -4
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_box.py +6 -9
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/scan_control/scan_control.py +3 -1
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/toggle/toggle.py +5 -4
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +4 -6
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/waveform_widget.py +18 -19
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/buttons/buttons.md +13 -0
- bec_widgets-0.99.0/docs/user/widgets/buttons/dark_mode_disabled.png +0 -0
- bec_widgets-0.99.0/docs/user/widgets/buttons/dark_mode_enabled.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/pyproject.toml +1 -1
- bec_widgets-0.99.0/tests/unit_tests/test_dark_mode_button.py +70 -0
- bec_widgets-0.99.0/tests/unit_tests/test_msgs/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.git_hooks/pre-commit +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.gitignore +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.gitlab/merge_request_templates/default.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.gitlab-ci.yml +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.pylintrc +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/.readthedocs.yaml +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/LICENSE +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/README.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/app_icons/terminal_icon.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/status_icons/error.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/status_icons/refresh.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/status_icons/running.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/status_icons/warning.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/add.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/attach_all.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/auto_range.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/compare.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/connection.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/device_line_edit.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/drag_pan_mode.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/export.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/fft.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/fitting_parameters.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/history.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/image.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/image_autorange.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/import.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/line_axis.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/line_curve.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/lock_aspect_ratio.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/log_scale.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/motor_map.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/photo_library.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/positioner_box.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/progress.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/queue.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/rectangle_mode.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/remove.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/reset_settings.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/restore_state.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/ring_progress.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/rotate_left.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/rotate_right.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/save.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/save_state.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/scan_control.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/settings.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/status.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/terminal.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/transform.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/assets/toolbar_icons/waveform.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/auto_updates.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/client_utils.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/generate_cli.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/rpc_register.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/cli/server.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/general_app/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/general_app/general_app.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/general_app/web_links.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/qt_utils/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/qt_utils/error_popups.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/bec_table.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/layout_manager.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/reference_utils.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/rpc_decorator.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/thread_checker.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/validator_delegate.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/base_classes/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/color_button/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/color_button/color_button.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/console/console.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/device_browser → bec_widgets-0.99.0/bec_widgets/widgets/dark_mode_button}/__init__.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/device_combobox → bec_widgets-0.99.0/bec_widgets/widgets/device_browser}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_browser/device_browser.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_browser/device_browser.ui +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_browser/register_device_browser.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/device_line_edit → bec_widgets-0.99.0/bec_widgets/widgets/device_combobox}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/figure/plots → bec_widgets-0.99.0/bec_widgets/widgets/device_line_edit}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/dock/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/dock/dock.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/__init__.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/figure/plots/image → bec_widgets-0.99.0/bec_widgets/widgets/figure/plots}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/figure/plots/motor_map → bec_widgets-0.99.0/bec_widgets/widgets/figure/plots/image}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/figure/plots/waveform → bec_widgets-0.99.0/bec_widgets/widgets/figure/plots/motor_map}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/image → bec_widgets-0.99.0/bec_widgets/widgets/figure/plots/waveform}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/jupyter_console → bec_widgets-0.99.0/bec_widgets/widgets/image}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/motor_map → bec_widgets-0.99.0/bec_widgets/widgets/jupyter_console}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/motor_map/motor_map_dialog → bec_widgets-0.99.0/bec_widgets/widgets/motor_map}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/position_indicator → bec_widgets-0.99.0/bec_widgets/widgets/motor_map/motor_map_dialog}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/positioner_box → bec_widgets-0.99.0/bec_widgets/widgets/position_indicator}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/spinner → bec_widgets-0.99.0/bec_widgets/widgets/positioner_box}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/stop_button → bec_widgets-0.99.0/bec_widgets/widgets/spinner}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/spinner/spinner.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/text_box → bec_widgets-0.99.0/bec_widgets/widgets/stop_button}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/toggle → bec_widgets-0.99.0/bec_widgets/widgets/text_box}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/text_box/text_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/vscode → bec_widgets-0.99.0/bec_widgets/widgets/toggle}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/waveform → bec_widgets-0.99.0/bec_widgets/widgets/vscode}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/vscode/vscode.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/waveform/waveform_popups → bec_widgets-0.99.0/bec_widgets/widgets/waveform}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/waveform/waveform_popups/curve_dialog → bec_widgets-0.99.0/bec_widgets/widgets/waveform/waveform_popups}/__init__.py +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog → bec_widgets-0.99.0/bec_widgets/widgets/waveform/waveform_popups/curve_dialog}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
- {bec_widgets-0.97.0/bec_widgets/widgets/website → bec_widgets-0.99.0/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
- {bec_widgets-0.97.0/tests → bec_widgets-0.99.0/bec_widgets/widgets/website}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/website/register_website_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/website/website.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/Makefile +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/_static/custom.css +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/_templates/custom-class-template.rst +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/_templates/custom-module-template.rst +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/api_reference/api_reference.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/apps_48dp.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/display_settings_48dp.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/index_api.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/index_contribute.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/index_getting_started.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/index_user_guide.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/rocket_launch_48dp.svg +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/buttons.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/device_box.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/device_browser.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/device_inputs.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/dock_area.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/figure.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/image_widget.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/motor_map_widget.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/position_indicator.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/queue.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/ring_progress_bar.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/scan_controller.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/spinner.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/status_box.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/text_box.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/toggle.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/waveform_widget.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/assets/widget_screenshots/website.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/conf.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/developer/developer.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/developer/introduction/concepts.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/developer/introduction/contributing.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/developer/introduction/introduction.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/developer/introduction/useful_links.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/developer/widget_development/bec_dispatcher.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/developer/widget_development/widget_development.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/index.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/introduction/introduction.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/make.bat +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/requirements.txt +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/api_reference/api_reference.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/applications/applications.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/customisation.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/getting_started/BECDockArea.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/getting_started/auto_updates.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/getting_started/getting_started.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/getting_started/gui_complex_gui.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/getting_started/installation.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/getting_started/quick_start.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/getting_started/video_tutorials.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/user.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/bec_figure/BECFigure.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/bec_figure/bec_figure.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/bec_status_box/bec_status_box.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/bec_status_box/bec_status_box.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/device_browser/device_browser.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/device_browser/device_browser.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/device_input/device_input.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/dock_area/BECDockArea.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/dock_area/bec_dock_area.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/image/image_plot.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/image/image_widget.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/motor_map/motor.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/motor_map/motor_map.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/position_indicator/position_indicator.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/positioner_box/positioner_box.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/progress_bar/progress_bar.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/progress_bar/ring_progress_bar.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/queue/queue.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/scan_control/hide_scan_control.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/scan_control/scan_control.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/scan_control/scan_control.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/spinner/spinner.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/text_box/text_box.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/toggle/toggle.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/waveform/bec_figure_dap.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/waveform/scatter_2D.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/waveform/w1D.gif +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/waveform/waveform_widget.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/website/website.md +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/docs/user/widgets/widgets.md +0 -0
- {bec_widgets-0.97.0/tests/end-2-end → bec_widgets-0.99.0/tests}/__init__.py +0 -0
- {bec_widgets-0.97.0/tests/unit_tests → bec_widgets-0.99.0/tests/end-2-end}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/end-2-end/conftest.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/end-2-end/test_scan_control_e2e.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
- {bec_widgets-0.97.0/tests/unit_tests/test_msgs → bec_widgets-0.99.0/tests/unit_tests}/__init__.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/client_mocks.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/conftest.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_connector.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_dispatcher.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_dock.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_figure.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_image.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_image_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_motor_map.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_queue.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_bec_status_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_client_utils.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_color_map_selector.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_color_validation.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_configs/config_device.yaml +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_crosshair.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_device_browser.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_device_input_base.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_device_input_widgets.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_error_utils.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_generate_cli_client.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_generate_plugin.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_motor_map_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_plot_base.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_plugin_utils.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_positioner_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_ring_progress_bar.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_rpc_register.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_rpc_server.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_scan_control.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_scan_control_group_box.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_setting_dialog.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_spinner.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_stop_button.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_text_box_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_toggle.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_vscode_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_waveform1d.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_waveform_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_website_widget.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_widget_io.py +0 -0
- {bec_widgets-0.97.0 → bec_widgets-0.99.0}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,53 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v0.99.0 (2024-08-25)
|
4
|
+
|
5
|
+
### Documentation
|
6
|
+
|
7
|
+
* docs(darkmodebutton): added dark mode button docs ([`406c263`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/406c263746f0e809c1a4d98356c48f40428c23d7))
|
8
|
+
|
9
|
+
### Feature
|
10
|
+
|
11
|
+
* feat(darkmodebutton): added button to toggle between dark and light mode ([`cc8c166`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cc8c166b5c1d37e0f64c83801b2347a54a6550b6))
|
12
|
+
|
13
|
+
### Fix
|
14
|
+
|
15
|
+
* fix(toggle): emit state change ([`c4f3308`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c4f3308dc0c3e4b2064760ccd7372d71b3e49f96))
|
16
|
+
|
17
|
+
### Refactor
|
18
|
+
|
19
|
+
* refactor(darkmodebutton): renamed set_dark_mode_enabled to toggle_dark_mode ([`c70724a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c70724a456900bcb06b040407a2c5d497e49ce77))
|
20
|
+
|
21
|
+
### Test
|
22
|
+
|
23
|
+
* test(dark_mode_button): added tests for dark mode button ([`df35aab`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/df35aabff30c5d00b1c441132bd370446653741e))
|
24
|
+
|
25
|
+
## v0.98.0 (2024-08-25)
|
26
|
+
|
27
|
+
### Feature
|
28
|
+
|
29
|
+
* feat(themes): added set_theme method ([`2b4449a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2b4449afebdda0a97f95712a1353cf40ec55c283))
|
30
|
+
|
31
|
+
### Fix
|
32
|
+
|
33
|
+
* fix(toolbar): removed hardcoded color values ([`afdf4e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/afdf4e8782a22566932180224fa1c924d24c810f))
|
34
|
+
|
35
|
+
* fix: transitioning to material icons ([`2a82032`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2a82032644a84e38df04e2035a6aa63f4a046360))
|
36
|
+
|
37
|
+
* fix(dock_area): transitioned to MaterialIconAction ([`88a2f66`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/88a2f667588e9aeb34ae556fa327898824052bc3))
|
38
|
+
|
39
|
+
* fix: fix color palette if qtheme was not called ([`3f3b207`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3f3b207295ebd406ebaeecee465c774965161b8b))
|
40
|
+
|
41
|
+
* fix(figure): removed theme from figure init ([`e42b84c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e42b84c63650297d67feffccc02a2c2ba111ca79))
|
42
|
+
|
43
|
+
* fix: use globally set theme instead of the internal bec widgets theme ([`77c5aa7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/77c5aa741cf1f5b969a42aa878aa2965176dbf41))
|
44
|
+
|
45
|
+
* fix(waveform): fixed icon appearance ([`36ad464`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/36ad4641594b67c9b789515c28f7db78a12757ee))
|
46
|
+
|
47
|
+
### Refactor
|
48
|
+
|
49
|
+
* refactor(waveform): use set theme for demo ([`44cfda1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/44cfda1c07306669c9a4e09706d95e6b91dee370))
|
50
|
+
|
3
51
|
## v0.97.0 (2024-08-23)
|
4
52
|
|
5
53
|
### Feature
|
@@ -123,37 +171,3 @@ Since we now rely on reusing the BECClient singleton, we need the fix introduced
|
|
123
171
|
### Fix
|
124
172
|
|
125
173
|
* fix(rpc): use client singleton instead of dispatcher ([`ea9240d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ea9240d2f71931082f33fb6b68231469875c3d63))
|
126
|
-
|
127
|
-
* fix: removed qcoreapplication for polling events ([`4d02b42`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4d02b42f11e9882b843317255a4975565c8a536f))
|
128
|
-
|
129
|
-
## v0.94.4 (2024-08-14)
|
130
|
-
|
131
|
-
### Documentation
|
132
|
-
|
133
|
-
* docs: review developer section; add introduction ([`2af5c94`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2af5c94913a3435c1839034df4f45f885b56d08b))
|
134
|
-
|
135
|
-
### Fix
|
136
|
-
|
137
|
-
* fix: do not shutdown client in "close"
|
138
|
-
|
139
|
-
Terminating client connections has to be done at the application level ([`198c1d1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/198c1d1064cc2dae55de4b941929341faddacb28))
|
140
|
-
|
141
|
-
## v0.94.3 (2024-08-13)
|
142
|
-
|
143
|
-
### Fix
|
144
|
-
|
145
|
-
* fix(curve_dialog): async curves are shown in curve dialog after addition. ([`7aeb2b5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7aeb2b5c26c7c2851e8d663d32521da8daec95ef))
|
146
|
-
|
147
|
-
* 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))
|
148
|
-
|
149
|
-
### Test
|
150
|
-
|
151
|
-
* test(waveform_widget): added tests for axis setting and curve dialog ([`f285b35`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f285b35b491660549e74349318119f7c2c44f619))
|
152
|
-
|
153
|
-
## v0.94.2 (2024-08-13)
|
154
|
-
|
155
|
-
### Fix
|
156
|
-
|
157
|
-
* 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))
|
158
|
-
|
159
|
-
## v0.94.1 (2024-08-12)
|
@@ -21,6 +21,7 @@ class Widgets(str, enum.Enum):
|
|
21
21
|
BECQueue = "BECQueue"
|
22
22
|
BECStatusBox = "BECStatusBox"
|
23
23
|
BECWaveformWidget = "BECWaveformWidget"
|
24
|
+
DarkModeButton = "DarkModeButton"
|
24
25
|
DeviceBrowser = "DeviceBrowser"
|
25
26
|
DeviceComboBox = "DeviceComboBox"
|
26
27
|
DeviceLineEdit = "DeviceLineEdit"
|
@@ -2289,6 +2290,15 @@ class BECWaveformWidget(RPCBase):
|
|
2289
2290
|
"""
|
2290
2291
|
|
2291
2292
|
|
2293
|
+
class DarkModeButton(RPCBase):
|
2294
|
+
@rpc_call
|
2295
|
+
def toggle_dark_mode(self) -> None:
|
2296
|
+
"""
|
2297
|
+
Toggle the dark mode state. This will change the theme of the entire
|
2298
|
+
application to dark or light mode.
|
2299
|
+
"""
|
2300
|
+
|
2301
|
+
|
2292
2302
|
class DeviceBrowser(RPCBase):
|
2293
2303
|
@property
|
2294
2304
|
@rpc_call
|
@@ -76,31 +76,38 @@ class MaterialIconAction:
|
|
76
76
|
Action with a Material icon for the toolbar.
|
77
77
|
|
78
78
|
Args:
|
79
|
-
icon_path (str, optional): The name of the icon
|
79
|
+
icon_path (str, optional): The name of the Material icon. Defaults to None.
|
80
80
|
tooltip (bool, optional): The tooltip for the action. Defaults to None.
|
81
81
|
checkable (bool, optional): Whether the action is checkable. Defaults to False.
|
82
|
+
filled (bool, optional): Whether the icon is filled. Defaults to False.
|
82
83
|
"""
|
83
84
|
|
84
|
-
def __init__(
|
85
|
+
def __init__(
|
86
|
+
self,
|
87
|
+
icon_name: str = None,
|
88
|
+
tooltip: str = None,
|
89
|
+
checkable: bool = False,
|
90
|
+
filled: bool = False,
|
91
|
+
):
|
85
92
|
self.icon_name = icon_name
|
86
93
|
self.tooltip = tooltip
|
87
94
|
self.checkable = checkable
|
88
95
|
self.action = None
|
96
|
+
self.filled = filled
|
89
97
|
|
90
98
|
def add_to_toolbar(self, toolbar: QToolBar, target: QWidget):
|
91
|
-
|
92
|
-
"dark": "#FFFFFF",
|
93
|
-
"light": "#000000",
|
94
|
-
} # FIXME: This should be a theme color but the toolbar doesn't respect the theme atm
|
95
|
-
# once fixed, change it to
|
96
|
-
# palette = QGuiApplication.palette()
|
97
|
-
# palette.toolTipBase().color()
|
98
|
-
|
99
|
-
icon = material_icon(self.icon_name, size=(20, 20), color=color, convert_to_pixmap=False)
|
99
|
+
icon = self.get_icon()
|
100
100
|
self.action = QAction(icon, self.tooltip, target)
|
101
101
|
self.action.setCheckable(self.checkable)
|
102
102
|
toolbar.addAction(self.action)
|
103
103
|
|
104
|
+
def get_icon(self):
|
105
|
+
|
106
|
+
icon = material_icon(
|
107
|
+
self.icon_name, size=(20, 20), convert_to_pixmap=False, filled=self.filled
|
108
|
+
)
|
109
|
+
return icon
|
110
|
+
|
104
111
|
|
105
112
|
class DeviceSelectionAction(ToolBarAction):
|
106
113
|
"""
|
@@ -165,10 +172,12 @@ class ExpandableMenuAction(ToolBarAction):
|
|
165
172
|
menu = QMenu(button)
|
166
173
|
for action_id, action in self.actions.items():
|
167
174
|
sub_action = QAction(action.tooltip, target)
|
168
|
-
if action
|
175
|
+
if hasattr(action, "icon_path"):
|
169
176
|
icon = QIcon()
|
170
177
|
icon.addFile(action.icon_path, size=QSize(20, 20))
|
171
178
|
sub_action.setIcon(icon)
|
179
|
+
elif hasattr(action, "get_icon"):
|
180
|
+
sub_action.setIcon(action.get_icon())
|
172
181
|
sub_action.setCheckable(action.checkable)
|
173
182
|
menu.addAction(sub_action)
|
174
183
|
self.widgets[action_id] = sub_action
|
@@ -182,20 +191,13 @@ class ModularToolBar(QToolBar):
|
|
182
191
|
parent (QWidget, optional): The parent widget of the toolbar. Defaults to None.
|
183
192
|
actions (list[ToolBarAction], optional): A list of action creators to populate the toolbar. Defaults to None.
|
184
193
|
target_widget (QWidget, optional): The widget that the actions will target. Defaults to None.
|
185
|
-
color (str, optional): The background color of the toolbar. Defaults to "black".
|
186
194
|
"""
|
187
195
|
|
188
|
-
def __init__(
|
189
|
-
self,
|
190
|
-
parent=None,
|
191
|
-
actions: dict | None = None,
|
192
|
-
target_widget=None,
|
193
|
-
color: str = "rgba(255, 255, 255, 0)",
|
194
|
-
):
|
196
|
+
def __init__(self, parent=None, actions: dict | None = None, target_widget=None):
|
195
197
|
super().__init__(parent)
|
196
198
|
|
197
199
|
self.widgets = defaultdict(dict)
|
198
|
-
self.set_background_color(
|
200
|
+
self.set_background_color()
|
199
201
|
|
200
202
|
if actions is not None and target_widget is not None:
|
201
203
|
self.populate_toolbar(actions, target_widget)
|
@@ -212,8 +214,7 @@ class ModularToolBar(QToolBar):
|
|
212
214
|
action.add_to_toolbar(self, target_widget)
|
213
215
|
self.widgets[action_id] = action
|
214
216
|
|
215
|
-
def set_background_color(self
|
216
|
-
self.setStyleSheet(f"QToolBar {{ background: {color}; }}")
|
217
|
+
def set_background_color(self):
|
217
218
|
self.setIconSize(QSize(20, 20))
|
218
219
|
self.setMovable(False)
|
219
220
|
self.setFloatable(False)
|
@@ -5,21 +5,45 @@ from typing import Literal
|
|
5
5
|
import bec_qthemes
|
6
6
|
import numpy as np
|
7
7
|
import pyqtgraph as pg
|
8
|
+
from bec_qthemes._os_appearance.listener import OSThemeSwitchListener
|
8
9
|
from pydantic_core import PydanticCustomError
|
9
10
|
from qtpy.QtGui import QColor
|
10
11
|
from qtpy.QtWidgets import QApplication
|
11
12
|
|
12
|
-
CURRENT_THEME = "dark"
|
13
|
-
|
14
13
|
|
15
14
|
def get_theme_palette():
|
16
|
-
|
15
|
+
if QApplication.instance() is None or not hasattr(QApplication.instance(), "theme"):
|
16
|
+
theme = "dark"
|
17
|
+
else:
|
18
|
+
theme = QApplication.instance().theme["theme"]
|
19
|
+
return bec_qthemes.load_palette(theme)
|
17
20
|
|
18
21
|
|
19
|
-
def
|
20
|
-
|
21
|
-
|
22
|
+
def set_theme(theme: Literal["dark", "light", "auto"]):
|
23
|
+
"""
|
24
|
+
Set the theme for the application.
|
25
|
+
|
26
|
+
Args:
|
27
|
+
theme (Literal["dark", "light", "auto"]): The theme to set. "auto" will automatically switch between dark and light themes based on the system theme.
|
28
|
+
"""
|
29
|
+
app = QApplication.instance()
|
30
|
+
bec_qthemes.setup_theme(theme)
|
31
|
+
pg.setConfigOption("background", "w" if app.theme["theme"] == "light" else "k")
|
32
|
+
|
33
|
+
# pylint: disable=protected-access
|
34
|
+
if theme != "auto":
|
35
|
+
return
|
22
36
|
|
37
|
+
def callback():
|
38
|
+
app.theme["theme"] = listener._theme.lower()
|
39
|
+
apply_theme(listener._theme.lower())
|
40
|
+
|
41
|
+
listener = OSThemeSwitchListener(callback)
|
42
|
+
|
43
|
+
app.installEventFilter(listener)
|
44
|
+
|
45
|
+
|
46
|
+
def apply_theme(theme: Literal["dark", "light"]):
|
23
47
|
app = QApplication.instance()
|
24
48
|
# go through all pyqtgraph widgets and set background
|
25
49
|
children = itertools.chain.from_iterable(
|
@@ -0,0 +1,71 @@
|
|
1
|
+
from bec_qthemes import material_icon
|
2
|
+
from qtpy.QtCore import Property, Qt, Slot
|
3
|
+
from qtpy.QtWidgets import QHBoxLayout, QPushButton, QWidget
|
4
|
+
|
5
|
+
from bec_widgets.utils.bec_widget import BECWidget
|
6
|
+
from bec_widgets.utils.colors import set_theme
|
7
|
+
|
8
|
+
|
9
|
+
class DarkModeButton(BECWidget, QWidget):
|
10
|
+
USER_ACCESS = ["toggle_dark_mode"]
|
11
|
+
|
12
|
+
def __init__(
|
13
|
+
self, parent: QWidget | None = None, client=None, gui_id: str | None = None
|
14
|
+
) -> None:
|
15
|
+
super().__init__(client=client, gui_id=gui_id)
|
16
|
+
QWidget.__init__(self, parent)
|
17
|
+
|
18
|
+
self._dark_mode_enabled = False
|
19
|
+
self.layout = QHBoxLayout(self)
|
20
|
+
self.layout.setSpacing(0)
|
21
|
+
self.layout.setContentsMargins(0, 0, 0, 0)
|
22
|
+
self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
|
23
|
+
|
24
|
+
icon = material_icon("dark_mode", size=(20, 20), convert_to_pixmap=False)
|
25
|
+
self.mode_button = QPushButton(icon=icon)
|
26
|
+
self.update_mode_button()
|
27
|
+
self.mode_button.clicked.connect(self.toggle_dark_mode)
|
28
|
+
self.layout.addWidget(self.mode_button)
|
29
|
+
self.setLayout(self.layout)
|
30
|
+
self.setFixedSize(40, 40)
|
31
|
+
|
32
|
+
@Property(bool)
|
33
|
+
def dark_mode_enabled(self) -> bool:
|
34
|
+
"""
|
35
|
+
The dark mode state. If True, dark mode is enabled. If False, light mode is enabled.
|
36
|
+
"""
|
37
|
+
return self._dark_mode_enabled
|
38
|
+
|
39
|
+
@dark_mode_enabled.setter
|
40
|
+
def dark_mode_enabled(self, state: bool) -> None:
|
41
|
+
self._dark_mode_enabled = state
|
42
|
+
|
43
|
+
@Slot()
|
44
|
+
def toggle_dark_mode(self) -> None:
|
45
|
+
"""
|
46
|
+
Toggle the dark mode state. This will change the theme of the entire
|
47
|
+
application to dark or light mode.
|
48
|
+
"""
|
49
|
+
self.dark_mode_enabled = not self.dark_mode_enabled
|
50
|
+
self.update_mode_button()
|
51
|
+
set_theme("dark" if self.dark_mode_enabled else "light")
|
52
|
+
|
53
|
+
def update_mode_button(self):
|
54
|
+
icon = material_icon(
|
55
|
+
"light_mode" if self.dark_mode_enabled else "dark_mode",
|
56
|
+
size=(20, 20),
|
57
|
+
convert_to_pixmap=False,
|
58
|
+
)
|
59
|
+
self.mode_button.setIcon(icon)
|
60
|
+
self.mode_button.setToolTip("Set Light Mode" if self.dark_mode_enabled else "Set Dark Mode")
|
61
|
+
|
62
|
+
|
63
|
+
if __name__ == "__main__":
|
64
|
+
from qtpy.QtWidgets import QApplication
|
65
|
+
|
66
|
+
app = QApplication([])
|
67
|
+
|
68
|
+
w = DarkModeButton()
|
69
|
+
w.show()
|
70
|
+
|
71
|
+
app.exec_()
|
@@ -0,0 +1 @@
|
|
1
|
+
{'files': ['dark_mode_button.py']}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Copyright (C) 2022 The Qt Company Ltd.
|
2
|
+
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
3
|
+
|
4
|
+
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
5
|
+
|
6
|
+
from bec_widgets.utils.bec_designer import designer_material_icon
|
7
|
+
from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton
|
8
|
+
|
9
|
+
DOM_XML = """
|
10
|
+
<ui language='c++'>
|
11
|
+
<widget class='DarkModeButton' name='dark_mode_button'>
|
12
|
+
</widget>
|
13
|
+
</ui>
|
14
|
+
"""
|
15
|
+
|
16
|
+
|
17
|
+
class DarkModeButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
18
|
+
def __init__(self):
|
19
|
+
super().__init__()
|
20
|
+
self._form_editor = None
|
21
|
+
|
22
|
+
def createWidget(self, parent):
|
23
|
+
t = DarkModeButton(parent)
|
24
|
+
return t
|
25
|
+
|
26
|
+
def domXml(self):
|
27
|
+
return DOM_XML
|
28
|
+
|
29
|
+
def group(self):
|
30
|
+
return "BEC Buttons"
|
31
|
+
|
32
|
+
def icon(self):
|
33
|
+
return designer_material_icon("dark_mode")
|
34
|
+
|
35
|
+
def includeFile(self):
|
36
|
+
return "dark_mode_button"
|
37
|
+
|
38
|
+
def initialize(self, form_editor):
|
39
|
+
self._form_editor = form_editor
|
40
|
+
|
41
|
+
def isContainer(self):
|
42
|
+
return False
|
43
|
+
|
44
|
+
def isInitialized(self):
|
45
|
+
return self._form_editor is not None
|
46
|
+
|
47
|
+
def name(self):
|
48
|
+
return "DarkModeButton"
|
49
|
+
|
50
|
+
def toolTip(self):
|
51
|
+
return "Button to toggle between dark and light mode."
|
52
|
+
|
53
|
+
def whatsThis(self):
|
54
|
+
return self.toolTip()
|
@@ -0,0 +1,15 @@
|
|
1
|
+
def main(): # pragma: no cover
|
2
|
+
from qtpy import PYSIDE6
|
3
|
+
|
4
|
+
if not PYSIDE6:
|
5
|
+
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
|
6
|
+
return
|
7
|
+
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
8
|
+
|
9
|
+
from bec_widgets.widgets.dark_mode_button.dark_mode_button_plugin import DarkModeButtonPlugin
|
10
|
+
|
11
|
+
QPyDesignerCustomWidgetCollection.addCustomWidget(DarkModeButtonPlugin())
|
12
|
+
|
13
|
+
|
14
|
+
if __name__ == "__main__": # pragma: no cover
|
15
|
+
main()
|
@@ -9,17 +9,16 @@ from qtpy.QtCore import Qt
|
|
9
9
|
from qtpy.QtGui import QPainter, QPaintEvent
|
10
10
|
from qtpy.QtWidgets import QVBoxLayout, QWidget
|
11
11
|
|
12
|
+
from bec_widgets.qt_utils.error_popups import SafeSlot
|
12
13
|
from bec_widgets.qt_utils.toolbar import (
|
13
14
|
ExpandableMenuAction,
|
14
|
-
|
15
|
+
MaterialIconAction,
|
15
16
|
ModularToolBar,
|
16
17
|
SeparatorAction,
|
17
18
|
)
|
18
19
|
from bec_widgets.utils import ConnectionConfig, WidgetContainerUtils
|
19
20
|
from bec_widgets.utils.bec_widget import BECWidget
|
20
|
-
|
21
|
-
from ...qt_utils.error_popups import SafeSlot
|
22
|
-
from .dock import BECDock, DockConfig
|
21
|
+
from bec_widgets.widgets.dock.dock import BECDock, DockConfig
|
23
22
|
|
24
23
|
|
25
24
|
class DockAreaConfig(ConnectionConfig):
|
@@ -71,20 +70,26 @@ class BECDockArea(BECWidget, QWidget):
|
|
71
70
|
"menu_plots": ExpandableMenuAction(
|
72
71
|
label="Add Plot ",
|
73
72
|
actions={
|
74
|
-
"waveform":
|
75
|
-
|
76
|
-
|
73
|
+
"waveform": MaterialIconAction(
|
74
|
+
icon_name="show_chart", tooltip="Add Waveform", filled=True
|
75
|
+
),
|
76
|
+
"image": MaterialIconAction(
|
77
|
+
icon_name="image", tooltip="Add Image", filled=True
|
78
|
+
),
|
79
|
+
"motor_map": MaterialIconAction(
|
80
|
+
icon_name="my_location", tooltip="Add Motor Map", filled=True
|
81
|
+
),
|
77
82
|
},
|
78
83
|
),
|
79
84
|
"separator_0": SeparatorAction(),
|
80
85
|
"menu_devices": ExpandableMenuAction(
|
81
86
|
label="Add Device Control ",
|
82
87
|
actions={
|
83
|
-
"scan_control":
|
84
|
-
|
88
|
+
"scan_control": MaterialIconAction(
|
89
|
+
icon_name="stacked_line_chart", tooltip="Add Scan Control", filled=True
|
85
90
|
),
|
86
|
-
"positioner_box":
|
87
|
-
|
91
|
+
"positioner_box": MaterialIconAction(
|
92
|
+
icon_name="switch_right", tooltip="Add Device Box", filled=True
|
88
93
|
),
|
89
94
|
},
|
90
95
|
),
|
@@ -92,21 +97,29 @@ class BECDockArea(BECWidget, QWidget):
|
|
92
97
|
"menu_utils": ExpandableMenuAction(
|
93
98
|
label="Add Utils ",
|
94
99
|
actions={
|
95
|
-
"queue":
|
96
|
-
|
97
|
-
|
98
|
-
"
|
99
|
-
|
100
|
+
"queue": MaterialIconAction(
|
101
|
+
icon_name="edit_note", tooltip="Add Scan Queue", filled=True
|
102
|
+
),
|
103
|
+
"vs_code": MaterialIconAction(
|
104
|
+
icon_name="show_chart", tooltip="Add VS Code", filled=True
|
105
|
+
),
|
106
|
+
"status": MaterialIconAction(
|
107
|
+
icon_name="dns", tooltip="Add BEC Status Box", filled=True
|
108
|
+
),
|
109
|
+
"progress_bar": MaterialIconAction(
|
110
|
+
icon_name="track_changes",
|
111
|
+
tooltip="Add Circular ProgressBar",
|
112
|
+
filled=True,
|
100
113
|
),
|
101
114
|
},
|
102
115
|
),
|
103
116
|
"separator_2": SeparatorAction(),
|
104
|
-
"attach_all":
|
105
|
-
|
117
|
+
"attach_all": MaterialIconAction(
|
118
|
+
icon_name="zoom_in_map", tooltip="Attach all floating docks"
|
106
119
|
),
|
107
|
-
"save_state":
|
108
|
-
"restore_state":
|
109
|
-
|
120
|
+
"save_state": MaterialIconAction(icon_name="bookmark", tooltip="Save Dock State"),
|
121
|
+
"restore_state": MaterialIconAction(
|
122
|
+
icon_name="frame_reload", tooltip="Restore Dock State"
|
110
123
|
),
|
111
124
|
},
|
112
125
|
target_widget=self,
|
@@ -368,3 +381,15 @@ class BECDockArea(BECWidget, QWidget):
|
|
368
381
|
"""
|
369
382
|
self.cleanup()
|
370
383
|
super().close()
|
384
|
+
|
385
|
+
|
386
|
+
if __name__ == "__main__":
|
387
|
+
from qtpy.QtWidgets import QApplication
|
388
|
+
|
389
|
+
from bec_widgets.utils.colors import set_theme
|
390
|
+
|
391
|
+
app = QApplication([])
|
392
|
+
set_theme("auto")
|
393
|
+
dock_area = BECDockArea()
|
394
|
+
dock_area.show()
|
395
|
+
app.exec_()
|
@@ -182,7 +182,6 @@ class BECFigure(BECWidget, pg.GraphicsLayoutWidget):
|
|
182
182
|
print(f"Error in applying config: {e}")
|
183
183
|
return
|
184
184
|
self.config = config
|
185
|
-
self.change_theme(self.config.theme)
|
186
185
|
|
187
186
|
# widget_config has to be reset for not have each widget config twice when added to the figure
|
188
187
|
widget_configs = list(self.config.widgets.values())
|
@@ -10,7 +10,7 @@ from bec_widgets.qt_utils.error_popups import SafeSlot, WarningPopupUtility
|
|
10
10
|
from bec_widgets.qt_utils.settings_dialog import SettingsDialog
|
11
11
|
from bec_widgets.qt_utils.toolbar import (
|
12
12
|
DeviceSelectionAction,
|
13
|
-
|
13
|
+
MaterialIconAction,
|
14
14
|
ModularToolBar,
|
15
15
|
SeparatorAction,
|
16
16
|
)
|
@@ -66,45 +66,45 @@ class BECImageWidget(BECWidget, QWidget):
|
|
66
66
|
"monitor": DeviceSelectionAction(
|
67
67
|
"Monitor:", DeviceComboBox(device_filter="Device")
|
68
68
|
),
|
69
|
-
"connect":
|
69
|
+
"connect": MaterialIconAction(icon_name="link", tooltip="Connect Device"),
|
70
70
|
"separator_0": SeparatorAction(),
|
71
|
-
"save":
|
71
|
+
"save": MaterialIconAction(icon_name="save", tooltip="Open Export Dialog"),
|
72
72
|
"separator_1": SeparatorAction(),
|
73
|
-
"drag_mode":
|
74
|
-
|
73
|
+
"drag_mode": MaterialIconAction(
|
74
|
+
icon_name="open_with", tooltip="Drag Mouse Mode", checkable=True
|
75
75
|
),
|
76
|
-
"rectangle_mode":
|
77
|
-
|
76
|
+
"rectangle_mode": MaterialIconAction(
|
77
|
+
icon_name="frame_inspect", tooltip="Rectangle Zoom Mode", checkable=True
|
78
78
|
),
|
79
|
-
"auto_range":
|
80
|
-
|
81
|
-
icon_path="image_autorange.svg",
|
82
|
-
tooltip="Autorange Image Intensity",
|
83
|
-
checkable=True,
|
79
|
+
"auto_range": MaterialIconAction(
|
80
|
+
icon_name="open_in_full", tooltip="Autorange Plot"
|
84
81
|
),
|
85
|
-
"
|
86
|
-
|
87
|
-
|
88
|
-
|
82
|
+
"auto_range_image": MaterialIconAction(
|
83
|
+
icon_name="hdr_auto", tooltip="Autorange Image Intensity", checkable=True
|
84
|
+
),
|
85
|
+
"aspect_ratio": MaterialIconAction(
|
86
|
+
icon_name="aspect_ratio", tooltip="Lock image aspect ratio", checkable=True
|
89
87
|
),
|
90
88
|
"separator_2": SeparatorAction(),
|
91
|
-
"FFT":
|
92
|
-
"log":
|
93
|
-
|
89
|
+
"FFT": MaterialIconAction(icon_name="fft", tooltip="Toggle FFT", checkable=True),
|
90
|
+
"log": MaterialIconAction(
|
91
|
+
icon_name="log_scale", tooltip="Toggle log scale", checkable=True
|
92
|
+
),
|
93
|
+
"transpose": MaterialIconAction(
|
94
|
+
icon_name="transform", tooltip="Transpose Image", checkable=True
|
94
95
|
),
|
95
|
-
"
|
96
|
-
|
96
|
+
"rotate_right": MaterialIconAction(
|
97
|
+
icon_name="rotate_right", tooltip="Rotate image clockwise by 90 deg"
|
97
98
|
),
|
98
|
-
"
|
99
|
-
|
99
|
+
"rotate_left": MaterialIconAction(
|
100
|
+
icon_name="rotate_left", tooltip="Rotate image counterclockwise by 90 deg"
|
100
101
|
),
|
101
|
-
"
|
102
|
-
|
102
|
+
"reset": MaterialIconAction(
|
103
|
+
icon_name="reset_settings", tooltip="Reset Image Settings"
|
103
104
|
),
|
104
|
-
"reset": IconAction(icon_path="reset_settings.svg", tooltip="Reset Image Settings"),
|
105
105
|
"separator_3": SeparatorAction(),
|
106
|
-
"axis_settings":
|
107
|
-
|
106
|
+
"axis_settings": MaterialIconAction(
|
107
|
+
icon_name="settings", tooltip="Open Configuration Dialog"
|
108
108
|
),
|
109
109
|
},
|
110
110
|
target_widget=self,
|
@@ -5,7 +5,7 @@ import sys
|
|
5
5
|
from qtpy.QtWidgets import QVBoxLayout, QWidget
|
6
6
|
|
7
7
|
from bec_widgets.qt_utils.settings_dialog import SettingsDialog
|
8
|
-
from bec_widgets.qt_utils.toolbar import DeviceSelectionAction,
|
8
|
+
from bec_widgets.qt_utils.toolbar import DeviceSelectionAction, MaterialIconAction, ModularToolBar
|
9
9
|
from bec_widgets.utils.bec_widget import BECWidget
|
10
10
|
from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox
|
11
11
|
from bec_widgets.widgets.figure import BECFigure
|
@@ -54,9 +54,11 @@ class BECMotorMapWidget(BECWidget, QWidget):
|
|
54
54
|
"motor_y": DeviceSelectionAction(
|
55
55
|
"Motor Y:", DeviceComboBox(device_filter="Positioner")
|
56
56
|
),
|
57
|
-
"connect":
|
58
|
-
"history":
|
59
|
-
"config":
|
57
|
+
"connect": MaterialIconAction(icon_name="link", tooltip="Connect Motors"),
|
58
|
+
"history": MaterialIconAction(icon_name="history", tooltip="Reset Trace History"),
|
59
|
+
"config": MaterialIconAction(
|
60
|
+
icon_name="settings", tooltip="Open Configuration Dialog"
|
61
|
+
),
|
60
62
|
},
|
61
63
|
target_widget=self,
|
62
64
|
)
|