bec-widgets 3.40.2__tar.gz → 3.40.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-3.40.2 → bec_widgets-3.40.4}/.github/workflows/pytest-matrix.yml +1 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/pytest.yml +1 -8
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.gitignore +0 -3
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/AGENTS.md +0 -1
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/CHANGELOG.md +62 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/PKG-INFO +1 -1
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/upload_redis_dialog.py +7 -33
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/client_utils.py +0 -14
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/designer_plugins.py +0 -2
- bec_widgets-3.40.4/bec_widgets/utils/rpc_decorator.py +12 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/actions.py +0 -73
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/basic_dock_area.py +83 -4
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/device_table/device_table.py +34 -12
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +18 -5
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +4 -4
- bec_widgets-3.40.4/bec_widgets/widgets/plots/multi_waveform/toolbar_components/monitor_selection.py +39 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_config_dialog.py +4 -58
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +5 -2
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/pyproject.toml +1 -1
- bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/main.py +0 -18
- bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -13
- bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -4
- bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -135
- bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -73
- bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -68
- bec_widgets-3.40.2/bec_widgets/utils/layout_manager.py +0 -121
- bec_widgets-3.40.2/bec_widgets/utils/redis_message_waiter.py +0 -49
- bec_widgets-3.40.2/bec_widgets/utils/reference_utils.py +0 -93
- bec_widgets-3.40.2/bec_widgets/utils/rpc_decorator.py +0 -29
- bec_widgets-3.40.2/bec_widgets/utils/thread_checker.py +0 -37
- bec_widgets-3.40.2/bec_widgets/widgets/plots/multi_waveform/toolbar_components/monitor_selection.py +0 -100
- bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -74
- bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -1
- bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -57
- bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -17
- bec_widgets-3.40.2/bec_widgets/widgets/utility/widget_finder/__init__.py +0 -0
- bec_widgets-3.40.2/bec_widgets/widgets/utility/widget_hierarchy_tree/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.git_hooks/pre-commit +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/actions/bw_install/action.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/dependabot.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/pull_request_template.md +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/aggregate_benchmarks.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/compare_benchmarks.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/run_benchmarks.sh +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/run_with_bec_servers.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/benchmark.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/check_pr.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/child_repos.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/ci.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/end2end-conda.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/formatter.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/generate-cli-check.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/semantic_release.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/stale-issues.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/sync-issues-pr.yml +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.pylintrc +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/CLAUDE.md +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/LICENSE +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/README.md +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/THIRD-PARTY-LICENCES +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/bw_launch.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/companion_app.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/launch_window.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/main_app.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/reveal_animator.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/side_bar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/side_bar_components.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/startup_profiler.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/admin_view/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/admin_view/admin_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/developer_view/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/developer_view/developer_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/developer_view/developer_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/config_choice_dialog.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/device_form_dialog.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_display_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/dock_area_view/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/dock_area_view/dock_area_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/auto_update.png +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/client.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/rpc/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/rpc/rpc_base.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/examples/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside → bec_widgets-3.40.4/bec_widgets/tests}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/client_mocks.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/fake_devices.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/fixtures.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/testable_qtimer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/utils.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_connector.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_designer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_dispatcher.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_list.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_login.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_plugin_helper.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/tests → bec_widgets-3.40.4/bec_widgets/utils/bec_plugin_manager}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/utils/bec_plugin_manager → bec_widgets-3.40.4/bec_widgets/utils/bec_plugin_manager/create}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_plugin_manager/create/widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_plugin_manager/edit_ui.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_signal_proxy.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/busy_loader.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/clickable_label.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/colors.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/container_utils.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/crosshair.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/eliding_label.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/entry_validator.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/error_popups.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/expandable_frame.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/filter_io.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/flow_layout.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/utils/bec_plugin_manager/create → bec_widgets-3.40.4/bec_widgets/utils/forms_from_types}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/forms.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/items.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/pydantic_model_info_adapter.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/pydantic_widget_form.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/styles.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/fps_counter.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/fuzzy_search.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/generate_cli.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/generate_designer_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/guided_tour.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/utils/forms_from_types → bec_widgets-3.40.4/bec_widgets/utils/help_inspector}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/help_inspector/help_inspector.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/launch_progress.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/launcher_ready.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/linear_region_selector.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/list_of_expandable_frames.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/name_utils.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/ophyd_kind_util.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/palette_viewer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plot_indicator_items.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plugin_templates/register.template +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plugin_utils.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/property_editor.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/round_frame.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_logging.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_register.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_server.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_widget_handler.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/scan_arg_metadata.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/screen_utils.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/serialization.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/settings_dialog.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/side_panel.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/signal_classification.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/bundles.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/connections.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/performance.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/splitter.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/toolbar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/ui_loader.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/widget_highlighter.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/widget_io.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/widget_state_manager.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/yaml_dialog.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/utils/help_inspector → bec_widgets-3.40.4/bec_widgets/widgets}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets → bec_widgets-3.40.4/bec_widgets/widgets/containers}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers → bec_widgets-3.40.4/bec_widgets/widgets/containers/auto_update}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/auto_update → bec_widgets-3.40.4/bec_widgets/widgets/containers/dock_area}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/dock_area.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/profile_utils.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/dock_area → bec_widgets-3.40.4/bec_widgets/widgets/containers/dock_area/settings}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/settings/dialogs.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/settings/workspace_manager.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/dock_area/settings → bec_widgets-3.40.4/bec_widgets/widgets/containers/dock_area/toolbar_components}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/toolbar_components/workspace_actions.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/dock_area/toolbar_components → bec_widgets-3.40.4/bec_widgets/widgets/containers/explorer}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/explorer/collapsible_tree_section.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/explorer/explorer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/explorer/file_browser_tree_widget.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/explorer → bec_widgets-3.40.4/bec_widgets/widgets/containers/layout_manager}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/layout_manager → bec_widgets-3.40.4/bec_widgets/widgets/containers/main_window}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/main_window → bec_widgets-3.40.4/bec_widgets/widgets/containers/main_window/addons}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/hover_widget.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/main_window/addons → bec_widgets-3.40.4/bec_widgets/widgets/containers/main_window/addons/notification_center}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/scroll_label.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/bec_main_window.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/bec_main_window_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/register_bec_main_window.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/qt_ads/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/qt_ads/__init__.pyi +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/main_window/addons/notification_center → bec_widgets-3.40.4/bec_widgets/widgets/containers/qt_ads/ads}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/qt_ads/ads/__init__.pyi +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/containers/qt_ads/ads → bec_widgets-3.40.4/bec_widgets/widgets/control}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control → bec_widgets-3.40.4/bec_widgets/widgets/control/buttons}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/buttons → bec_widgets-3.40.4/bec_widgets/widgets/control/buttons/button_abort}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/buttons/button_abort → bec_widgets-3.40.4/bec_widgets/widgets/control/buttons/button_reset}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/buttons/button_reset → bec_widgets-3.40.4/bec_widgets/widgets/control/buttons/button_resume}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/buttons/button_resume → bec_widgets-3.40.4/bec_widgets/widgets/control/buttons/stop_button}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/buttons/stop_button → bec_widgets-3.40.4/bec_widgets/widgets/control/device_control}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_control → bec_widgets-3.40.4/bec_widgets/widgets/control/device_control/position_indicator}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_control/position_indicator → bec_widgets-3.40.4/bec_widgets/widgets/control/device_control/positioner_box/positioner_box}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_control/positioner_box/positioner_box → bec_widgets-3.40.4/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_base.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d → bec_widgets-3.40.4/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line → bec_widgets-3.40.4/bec_widgets/widgets/control/device_control/positioner_group}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_control/positioner_group → bec_widgets-3.40.4/bec_widgets/widgets/control/device_input}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_input → bec_widgets-3.40.4/bec_widgets/widgets/control/device_input/device_combobox}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_input/device_combobox → bec_widgets-3.40.4/bec_widgets/widgets/control/device_input/signal_combobox}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/_util.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/available_device_resources/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_group.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_group_ui.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_resources.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/available_device_resources/available_device_resources_ui.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/available_device_resources/device_resource_backend.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/constants.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_input/signal_combobox → bec_widgets-3.40.4/bec_widgets/widgets/control/device_manager/components/device_config_template}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/device_config_template/device_config_template.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/device_config_template/template_items.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_manager/components/device_config_template → bec_widgets-3.40.4/bec_widgets/widgets/control/device_manager/components/device_table}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/device_table/device_table_row.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/dm_config_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/dm_docstring_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation_utils.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/validation_list_item.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_docstring.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_info_adapter.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_info_dialog.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_selection_dialog.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/control/device_manager/components/device_table → bec_widgets-3.40.4/bec_widgets/widgets/dap}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/dap → bec_widgets-3.40.4/bec_widgets/widgets/dap/dap_combo_box}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/dap/dap_combo_box → bec_widgets-3.40.4/bec_widgets/widgets/dap/lmfit_dialog}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/dap/lmfit_dialog → bec_widgets-3.40.4/bec_widgets/widgets/editors}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors → bec_widgets-3.40.4/bec_widgets/widgets/editors/bec_console}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_console.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_console.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_console_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_shell.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_shell_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/register_bec_console.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/register_bec_shell.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors/bec_console → bec_widgets-3.40.4/bec_widgets/widgets/editors/jupyter_console}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors/jupyter_console → bec_widgets-3.40.4/bec_widgets/widgets/editors/monaco}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_dock.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_widget.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_widget_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/register_monaco_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/scan_control_dialog.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors/monaco → bec_widgets-3.40.4/bec_widgets/widgets/editors/sbb_monitor}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/register_sbb_monitor.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors/sbb_monitor → bec_widgets-3.40.4/bec_widgets/widgets/editors/scan_metadata}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors/scan_metadata → bec_widgets-3.40.4/bec_widgets/widgets/editors/text_box}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors/text_box → bec_widgets-3.40.4/bec_widgets/widgets/editors/website}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/website.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/minesweeper.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/editors/website → bec_widgets-3.40.4/bec_widgets/widgets/plots}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots → bec_widgets-3.40.4/bec_widgets/widgets/plots/heatmap}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/heatmap.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/heatmap.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/heatmap_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/register_heatmap.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/heatmap → bec_widgets-3.40.4/bec_widgets/widgets/plots/heatmap/settings}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/settings/heatmap_setting.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/settings/heatmap_settings_horizontal.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/settings/heatmap_settings_vertical.ui +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/heatmap/settings → bec_widgets-3.40.4/bec_widgets/widgets/plots/image}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/bec_histogram_lut_item.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_base.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_item.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_roi_plot.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/register_image.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/image → bec_widgets-3.40.4/bec_widgets/widgets/plots/image/setting_widgets}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/image/setting_widgets → bec_widgets-3.40.4/bec_widgets/widgets/plots/image/toolbar_components}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/toolbar_components/device_selection.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/toolbar_components/image_base_actions.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/image/toolbar_components → bec_widgets-3.40.4/bec_widgets/widgets/plots/motor_map}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/motor_map → bec_widgets-3.40.4/bec_widgets/widgets/plots/motor_map/settings}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/motor_map/settings → bec_widgets-3.40.4/bec_widgets/widgets/plots/motor_map/toolbar_components}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/toolbar_components/motor_selection.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/motor_map/toolbar_components → bec_widgets-3.40.4/bec_widgets/widgets/plots/multi_waveform}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/multi_waveform → bec_widgets-3.40.4/bec_widgets/widgets/plots/multi_waveform/settings}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/multi_waveform/settings → bec_widgets-3.40.4/bec_widgets/widgets/plots/multi_waveform/toolbar_components}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/plot_base.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/plot_info_label.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/multi_waveform/toolbar_components → bec_widgets-3.40.4/bec_widgets/widgets/plots/roi}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/roi → bec_widgets-3.40.4/bec_widgets/widgets/plots/scatter_waveform}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/scatter_waveform → bec_widgets-3.40.4/bec_widgets/widgets/plots/scatter_waveform/settings}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/scatter_waveform/settings → bec_widgets-3.40.4/bec_widgets/widgets/plots/setting_menus}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/setting_menus → bec_widgets-3.40.4/bec_widgets/widgets/plots/toolbar_components}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/axis_settings_popup.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/mouse_interactions.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/plot_export.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/roi.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/toolbar_components → bec_widgets-3.40.4/bec_widgets/widgets/plots/waveform}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/waveform → bec_widgets-3.40.4/bec_widgets/widgets/plots/waveform/settings}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/waveform/settings → bec_widgets-3.40.4/bec_widgets/widgets/plots/waveform/settings/curve_settings}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/waveform/settings/curve_settings → bec_widgets-3.40.4/bec_widgets/widgets/plots/waveform/utils}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/utils/alignment_controller.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/utils/alignment_panel.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/waveform.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/plots/waveform/utils → bec_widgets-3.40.4/bec_widgets/widgets/progress}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/progress → bec_widgets-3.40.4/bec_widgets/widgets/progress/bec_progressbar}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/progress/bec_progressbar → bec_widgets-3.40.4/bec_widgets/widgets/progress/device_initialization_progress_bar}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/device_initialization_progress_bar/device_initialization_progress_bar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/device_initialization_progress_bar/device_initialization_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/device_initialization_progress_bar/device_initialization_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/device_initialization_progress_bar/register_device_initialization_progress_bar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/progress_backend.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/progress/device_initialization_progress_bar → bec_widgets-3.40.4/bec_widgets/widgets/progress/ring_progress_bar}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_settings_cards.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_settings.ui +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/progress/ring_progress_bar → bec_widgets-3.40.4/bec_widgets/widgets/progress/scan_progressbar}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/register_scan_progress_bar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar_one_line.ui +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/progress/scan_progressbar → bec_widgets-3.40.4/bec_widgets/widgets/services}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services → bec_widgets-3.40.4/bec_widgets/widgets/services/beamline_states}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_manager.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_manager.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_manager_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_pill.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/dialogs.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/register_beamline_state_manager.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services/beamline_states → bec_widgets-3.40.4/bec_widgets/widgets/services/bec_atlas_admin_view}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_atlas_admin_view/bec_atlas_admin_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_atlas_admin_view/bec_atlas_http_service.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services/bec_atlas_admin_view → bec_widgets-3.40.4/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/experiment_mat_card.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/experiment_selection.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/utils.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection → bec_widgets-3.40.4/bec_widgets/widgets/services/bec_queue}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services/bec_queue → bec_widgets-3.40.4/bec_widgets/widgets/services/bec_status_box}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services/bec_status_box → bec_widgets-3.40.4/bec_widgets/widgets/services/device_browser}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/config_communicator.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_config_form.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_signal_display.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/util.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services/device_browser → bec_widgets-3.40.4/bec_widgets/widgets/services/scan_history_browser}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/components/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/components/scan_history_device_viewer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/components/scan_history_metadata_viewer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/components/scan_history_view.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/scan_history_browser.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/services/scan_history_browser → bec_widgets-3.40.4/bec_widgets/widgets/utility}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/protocol.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/qtermwidget_wrapper.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/util.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility → bec_widgets-3.40.4/bec_widgets/widgets/utility/feedback_dialog}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/feedback_dialog/feedback_dialog.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/ide_explorer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/ide_explorer.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/ide_explorer_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/register_ide_explorer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer_widget.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer_widget_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/register_pdf_viewer_widget.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/feedback_dialog → bec_widgets-3.40.4/bec_widgets/widgets/utility/scan_index_combobox}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/scan_index_combobox/register_scan_index_combo_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combo_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combobox.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/scan_index_combobox → bec_widgets-3.40.4/bec_widgets/widgets/utility/signal_label}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/register_signal_label.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/signal_label.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/signal_label.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/signal_label_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/signal_label → bec_widgets-3.40.4/bec_widgets/widgets/utility/spinbox}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/spinbox → bec_widgets-3.40.4/bec_widgets/widgets/utility/spinner}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/spinner → bec_widgets-3.40.4/bec_widgets/widgets/utility/toggle}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/toggle → bec_widgets-3.40.4/bec_widgets/widgets/utility/visual}/__init__.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/visual → bec_widgets-3.40.4/bec_widgets/widgets/utility/visual/color_button_native}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button → bec_widgets-3.40.4/bec_widgets/widgets/utility/visual/colormap_selector}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button_native → bec_widgets-3.40.4/bec_widgets/widgets/utility/visual/colormap_widget}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/colormap_selector → bec_widgets-3.40.4/bec_widgets/widgets/utility/visual/dark_mode_button}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/colormap_widget → bec_widgets-3.40.4/bec_widgets/widgets/utility/widget_finder}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/register_widget_finder_combo_box.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/widget_finder.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/widget_finder_combo_box.pyproject +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/widget_finder_combo_box_plugin.py +0 -0
- {bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/dark_mode_button → bec_widgets-3.40.4/bec_widgets/widgets/utility/widget_hierarchy_tree}/__init__.py +0 -0
- {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_hierarchy_tree/widget_hierarchy_tree.py +0 -0
|
@@ -37,6 +37,7 @@ jobs:
|
|
|
37
37
|
QTWEBENGINE_DISABLE_SANDBOX: 1
|
|
38
38
|
QT_QPA_PLATFORM: "offscreen"
|
|
39
39
|
QTWEBENGINE_CHROMIUM_FLAGS: "--disable-gpu"
|
|
40
|
+
PYTHONFAULTHANDLER: 1 # keep the crash traceback on after pytest exits (crashes at interpreter shutdown)
|
|
40
41
|
|
|
41
42
|
steps:
|
|
42
43
|
- name: Checkout BEC Widgets
|
|
@@ -36,6 +36,7 @@ jobs:
|
|
|
36
36
|
QTWEBENGINE_DISABLE_SANDBOX: 1
|
|
37
37
|
QT_QPA_PLATFORM: "offscreen"
|
|
38
38
|
QTWEBENGINE_CHROMIUM_FLAGS: "--disable-gpu"
|
|
39
|
+
PYTHONFAULTHANDLER: 1 # keep the crash traceback on after pytest exits (crashes at interpreter shutdown)
|
|
39
40
|
|
|
40
41
|
steps:
|
|
41
42
|
- name: Checkout BEC Widgets
|
|
@@ -60,14 +61,6 @@ jobs:
|
|
|
60
61
|
coverage report
|
|
61
62
|
coverage xml -o coverage-unit.xml
|
|
62
63
|
|
|
63
|
-
- name: Upload test artifacts
|
|
64
|
-
uses: actions/upload-artifact@v4
|
|
65
|
-
if: failure()
|
|
66
|
-
with:
|
|
67
|
-
name: image-references
|
|
68
|
-
path: bec_widgets/tests/reference_failures/
|
|
69
|
-
if-no-files-found: ignore
|
|
70
|
-
|
|
71
64
|
- name: Upload coverage to Codecov
|
|
72
65
|
uses: codecov/codecov-action@v5
|
|
73
66
|
with:
|
|
@@ -51,7 +51,6 @@ Main package and test areas:
|
|
|
51
51
|
- `bec_widgets/tests/` — packaged test helpers for downstream plugin repos
|
|
52
52
|
- `tests/unit_tests/` — main test suite
|
|
53
53
|
- `tests/end-2-end/` — tests against a real BEC deployment
|
|
54
|
-
- `tests/reference_failures/` — failed image-comparison output collected in CI
|
|
55
54
|
|
|
56
55
|
Console scripts declared in `pyproject.toml`:
|
|
57
56
|
|
|
@@ -1,6 +1,68 @@
|
|
|
1
1
|
# CHANGELOG
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
## v3.40.4 (2026-10-16)
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
- **device_manager**: Compare SortTableItem by text when it has no sort data
|
|
9
|
+
([`68d5093`](https://github.com/bec-project/bec_widgets/commit/68d5093002364ce4d9120263cfa029afa773eb25))
|
|
10
|
+
|
|
11
|
+
### Continuous Integration
|
|
12
|
+
|
|
13
|
+
- Keep faulthandler enabled after pytest exits
|
|
14
|
+
([`83eb874`](https://github.com/bec-project/bec_widgets/commit/83eb8748ae46e12b628fae8660395472aba1262a))
|
|
15
|
+
|
|
16
|
+
### Refactoring
|
|
17
|
+
|
|
18
|
+
- **client_utils**: Remove unused WidgetNameSpace
|
|
19
|
+
([`5a4b328`](https://github.com/bec-project/bec_widgets/commit/5a4b3283181b165c69d4f4acd934615155ec6144))
|
|
20
|
+
|
|
21
|
+
- **color_button**: Merge ColorButton into ColorButtonNative
|
|
22
|
+
([`824979f`](https://github.com/bec-project/bec_widgets/commit/824979f7c4d8409ecfcd7cd94fa29ecd61fcde4c))
|
|
23
|
+
|
|
24
|
+
- **device_browser**: Remove unused PresetClassDeviceConfigDialog
|
|
25
|
+
([`1a790c2`](https://github.com/bec-project/bec_widgets/commit/1a790c296442f6173440208f23dbe273cbbe89e2))
|
|
26
|
+
|
|
27
|
+
- **device_manager**: Share one SortTableItem with an optional sort key
|
|
28
|
+
([`9c8800a`](https://github.com/bec-project/bec_widgets/commit/9c8800a8fa8215832d3c094ec07b5091b7154ec9))
|
|
29
|
+
|
|
30
|
+
- **examples**: Remove the TicTacToe Designer plugin example
|
|
31
|
+
([`74daa7f`](https://github.com/bec-project/bec_widgets/commit/74daa7fdcbf29ed0a8fa612aedcd250513a74f22))
|
|
32
|
+
|
|
33
|
+
- **multi_waveform**: Remove unused MultiWaveformSelectionToolbarBundle
|
|
34
|
+
([`ebe6707`](https://github.com/bec-project/bec_widgets/commit/ebe67079f38ee18e671e7fc0528ac0381f66d291))
|
|
35
|
+
|
|
36
|
+
- **rpc**: Remove unused rpc_public and register_rpc_methods decorators
|
|
37
|
+
([`f606fa8`](https://github.com/bec-project/bec_widgets/commit/f606fa8a713156e08734455e8aebe595ccef4d18))
|
|
38
|
+
|
|
39
|
+
- **toolbar**: Remove unused TutorialAction
|
|
40
|
+
([`4d6a07a`](https://github.com/bec-project/bec_widgets/commit/4d6a07a940edddc055656cf7b67ac47144dfa6dc))
|
|
41
|
+
|
|
42
|
+
- **utils**: Remove unused GridLayoutManager
|
|
43
|
+
([`a857c96`](https://github.com/bec-project/bec_widgets/commit/a857c966164ca8b35d5731cde3acc4c89a5e2ae3))
|
|
44
|
+
|
|
45
|
+
- **utils**: Remove unused QtRedisMessageWaiter
|
|
46
|
+
([`9cce9df`](https://github.com/bec-project/bec_widgets/commit/9cce9dfe465942c487469d36e77ac2137c90d493))
|
|
47
|
+
|
|
48
|
+
- **utils**: Remove unused ThreadTracker
|
|
49
|
+
([`1efd0cf`](https://github.com/bec-project/bec_widgets/commit/1efd0cf4b886b16282099f91e387ee9719de1939))
|
|
50
|
+
|
|
51
|
+
- **utils**: Remove unused widget image reference helpers
|
|
52
|
+
([`bfd8235`](https://github.com/bec-project/bec_widgets/commit/bfd82350cd597e707007949cf3683ada5cf9379d))
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
## v3.40.3 (2026-10-16)
|
|
56
|
+
|
|
57
|
+
### Bug Fixes
|
|
58
|
+
|
|
59
|
+
- **dock_area**: Bind deferred splitter callbacks and stop busy polling
|
|
60
|
+
([`7ce6bf2`](https://github.com/bec-project/bec_widgets/commit/7ce6bf2a5ab07a566d46e97e8199974f5b667633))
|
|
61
|
+
|
|
62
|
+
- **dock_area**: Skip superseded deferred layout ratio requests
|
|
63
|
+
([`4cfb49f`](https://github.com/bec-project/bec_widgets/commit/4cfb49ff9538415530cd12377650c4957b097769))
|
|
64
|
+
|
|
65
|
+
|
|
4
66
|
## v3.40.2 (2026-10-15)
|
|
5
67
|
|
|
6
68
|
### Bug Fixes
|
|
@@ -12,6 +12,9 @@ from qtpy import QtCore, QtGui, QtWidgets
|
|
|
12
12
|
|
|
13
13
|
from bec_widgets.utils.colors import get_accent_colors
|
|
14
14
|
from bec_widgets.utils.error_popups import SafeSlot
|
|
15
|
+
from bec_widgets.widgets.control.device_manager.components.device_table.device_table import (
|
|
16
|
+
SortTableItem,
|
|
17
|
+
)
|
|
15
18
|
from bec_widgets.widgets.control.device_manager.components.ophyd_validation import (
|
|
16
19
|
ConfigStatus,
|
|
17
20
|
ConnectionStatus,
|
|
@@ -95,38 +98,9 @@ class DeviceStatusItem(QtWidgets.QWidget):
|
|
|
95
98
|
self._update_display()
|
|
96
99
|
|
|
97
100
|
|
|
98
|
-
|
|
99
|
-
"""
|
|
100
|
-
|
|
101
|
-
def __lt__(self, other: QtWidgets.QTableWidgetItem) -> bool:
|
|
102
|
-
"""Override less-than operator for sorting."""
|
|
103
|
-
if not isinstance(other, QtWidgets.QTableWidgetItem):
|
|
104
|
-
return NotImplemented
|
|
105
|
-
self_data = self.data(QtCore.Qt.ItemDataRole.UserRole)
|
|
106
|
-
other_data = other.data(QtCore.Qt.ItemDataRole.UserRole)
|
|
107
|
-
if self_data is not None and other_data is not None:
|
|
108
|
-
self_data: DeviceStatusItem
|
|
109
|
-
other_data: DeviceStatusItem
|
|
110
|
-
if self_data.config_status != other_data.config_status:
|
|
111
|
-
return self_data.config_status < other_data.config_status
|
|
112
|
-
else:
|
|
113
|
-
return self_data.connection_status < other_data.connection_status
|
|
114
|
-
return super().__lt__(other)
|
|
115
|
-
|
|
116
|
-
def __gt__(self, other: QtWidgets.QTableWidgetItem) -> bool:
|
|
117
|
-
"""Override less-than operator for sorting."""
|
|
118
|
-
if not isinstance(other, QtWidgets.QTableWidgetItem):
|
|
119
|
-
return NotImplemented
|
|
120
|
-
self_data = self.data(QtCore.Qt.ItemDataRole.UserRole)
|
|
121
|
-
other_data = other.data(QtCore.Qt.ItemDataRole.UserRole)
|
|
122
|
-
if self_data is not None and other_data is not None:
|
|
123
|
-
self_data: DeviceStatusItem
|
|
124
|
-
other_data: DeviceStatusItem
|
|
125
|
-
if self_data.config_status != other_data.config_status:
|
|
126
|
-
return self_data.config_status > other_data.config_status
|
|
127
|
-
else:
|
|
128
|
-
return self_data.connection_status > other_data.connection_status
|
|
129
|
-
return super().__gt__(other)
|
|
101
|
+
def _status_sort_key(item: DeviceStatusItem) -> tuple[ConfigStatus, ConnectionStatus]:
|
|
102
|
+
"""Sort device status items by config status first, then by connection status."""
|
|
103
|
+
return item.config_status, item.connection_status
|
|
130
104
|
|
|
131
105
|
|
|
132
106
|
class ValidationSection(QtWidgets.QGroupBox):
|
|
@@ -180,7 +154,7 @@ class ValidationSection(QtWidgets.QGroupBox):
|
|
|
180
154
|
else:
|
|
181
155
|
row_position = self.table.rowCount()
|
|
182
156
|
self.table.insertRow(row_position)
|
|
183
|
-
sort_item = SortTableItem(device_name)
|
|
157
|
+
sort_item = SortTableItem(device_name, sort_key=_status_sort_key)
|
|
184
158
|
sort_item.setText("")
|
|
185
159
|
self.table.setItem(row_position, 0, sort_item)
|
|
186
160
|
device_item = DeviceStatusItem(device_config, config_status, connection_status)
|
|
@@ -305,20 +305,6 @@ def wait_for_server(client: BECGuiClient):
|
|
|
305
305
|
yield
|
|
306
306
|
|
|
307
307
|
|
|
308
|
-
class WidgetNameSpace:
|
|
309
|
-
def __repr__(self):
|
|
310
|
-
console = Console()
|
|
311
|
-
table = Table(title="Available widgets for BEC CLI usage")
|
|
312
|
-
table.add_column("Widget Name", justify="left", style="magenta")
|
|
313
|
-
table.add_column("Description", justify="left")
|
|
314
|
-
for attr, value in self.__dict__.items():
|
|
315
|
-
docs = value.__doc__
|
|
316
|
-
docs = docs if docs else "No description available"
|
|
317
|
-
table.add_row(attr, docs)
|
|
318
|
-
console.print(table)
|
|
319
|
-
return ""
|
|
320
|
-
|
|
321
|
-
|
|
322
308
|
class AvailableWidgetsNamespace:
|
|
323
309
|
"""Namespace for available widgets in the BEC GUI."""
|
|
324
310
|
|
|
@@ -24,7 +24,6 @@ designer_plugins = {
|
|
|
24
24
|
"BeamlineStateManager",
|
|
25
25
|
),
|
|
26
26
|
"BecConsole": ("bec_widgets.widgets.editors.bec_console.bec_console", "BecConsole"),
|
|
27
|
-
"ColorButton": ("bec_widgets.widgets.utility.visual.color_button.color_button", "ColorButton"),
|
|
28
27
|
"ColorButtonNative": (
|
|
29
28
|
"bec_widgets.widgets.utility.visual.color_button_native.color_button_native",
|
|
30
29
|
"ColorButtonNative",
|
|
@@ -132,7 +131,6 @@ widget_icons = {
|
|
|
132
131
|
"BECStatusBox": "widgets",
|
|
133
132
|
"BeamlineStateManager": "format_list_bulleted",
|
|
134
133
|
"BecConsole": "terminal",
|
|
135
|
-
"ColorButton": "colors",
|
|
136
134
|
"ColorButtonNative": "colors",
|
|
137
135
|
"ColormapSelector": "palette",
|
|
138
136
|
"DapComboBox": "data_exploration",
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
def rpc_timeout(timeout: float | None):
|
|
2
|
+
"""
|
|
3
|
+
Decorator to set a timeout for RPC methods.
|
|
4
|
+
The actual implementation of timeout handling is within the cli module. This decorator
|
|
5
|
+
is solely to inform the generate-cli command about the timeout value.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
def decorator(func):
|
|
9
|
+
func.__rpc_timeout__ = timeout # Store the timeout value in the function
|
|
10
|
+
return func
|
|
11
|
+
|
|
12
|
+
return decorator
|
|
@@ -698,76 +698,3 @@ class DeviceComboBoxAction(WidgetAction):
|
|
|
698
698
|
self.combobox.close()
|
|
699
699
|
self.combobox.deleteLater()
|
|
700
700
|
return super().cleanup()
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
class TutorialAction(MaterialIconAction):
|
|
704
|
-
"""
|
|
705
|
-
Action for starting a guided tutorial/help tour.
|
|
706
|
-
|
|
707
|
-
This action automatically initializes a GuidedTour instance and provides
|
|
708
|
-
methods to register widgets and start tours.
|
|
709
|
-
|
|
710
|
-
Args:
|
|
711
|
-
main_window (QWidget): The main window widget for the guided tour overlay.
|
|
712
|
-
tooltip (str, optional): The tooltip for the action. Defaults to "Start Guided Tutorial".
|
|
713
|
-
parent (QWidget or None, optional): Parent widget for the underlying QAction.
|
|
714
|
-
"""
|
|
715
|
-
|
|
716
|
-
def __init__(self, main_window: QWidget, tooltip: str = "Start Guided Tutorial", parent=None):
|
|
717
|
-
super().__init__(
|
|
718
|
-
icon_name="help",
|
|
719
|
-
tooltip=tooltip,
|
|
720
|
-
checkable=False,
|
|
721
|
-
filled=False,
|
|
722
|
-
color=None,
|
|
723
|
-
parent=parent,
|
|
724
|
-
)
|
|
725
|
-
|
|
726
|
-
from bec_widgets.utils.guided_tour import GuidedTour
|
|
727
|
-
|
|
728
|
-
self.guided_help = GuidedTour(main_window)
|
|
729
|
-
self.main_window = main_window
|
|
730
|
-
|
|
731
|
-
# Connect the action to start the tour
|
|
732
|
-
self.action.triggered.connect(self.start_tour)
|
|
733
|
-
|
|
734
|
-
def register_widget(self, widget: QWidget, text: str, widget_name: str = "") -> str:
|
|
735
|
-
"""
|
|
736
|
-
Register a widget for the guided tour.
|
|
737
|
-
|
|
738
|
-
Args:
|
|
739
|
-
widget (QWidget): The widget to highlight during the tour.
|
|
740
|
-
text (str): The help text to display.
|
|
741
|
-
widget_name (str, optional): Optional name for the widget.
|
|
742
|
-
|
|
743
|
-
Returns:
|
|
744
|
-
str: Unique ID for the registered widget.
|
|
745
|
-
"""
|
|
746
|
-
return self.guided_help.register_widget(widget=widget, text=text, title=widget_name)
|
|
747
|
-
|
|
748
|
-
def start_tour(self):
|
|
749
|
-
"""Start the guided tour with all registered widgets."""
|
|
750
|
-
registered_widgets = self.guided_help.get_registered_widgets()
|
|
751
|
-
if registered_widgets:
|
|
752
|
-
# Create tour from all registered widgets
|
|
753
|
-
step_ids = list(registered_widgets.keys())
|
|
754
|
-
if self.guided_help.create_tour(step_ids):
|
|
755
|
-
self.guided_help.start_tour()
|
|
756
|
-
else:
|
|
757
|
-
logger.warning("Failed to create guided tour")
|
|
758
|
-
else:
|
|
759
|
-
logger.warning("No widgets registered for guided tour")
|
|
760
|
-
|
|
761
|
-
def has_registered_widgets(self) -> bool:
|
|
762
|
-
"""Check if any widgets have been registered for the tour."""
|
|
763
|
-
return len(self.guided_help.get_registered_widgets()) > 0
|
|
764
|
-
|
|
765
|
-
def clear_registered_widgets(self):
|
|
766
|
-
"""Clear all registered widgets."""
|
|
767
|
-
self.guided_help.clear_registrations()
|
|
768
|
-
|
|
769
|
-
def cleanup(self):
|
|
770
|
-
"""Clean up the guided help instance."""
|
|
771
|
-
if hasattr(self, "guided_help"):
|
|
772
|
-
self.guided_help.stop_tour()
|
|
773
|
-
super().cleanup()
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import inspect
|
|
4
|
+
import itertools
|
|
4
5
|
from dataclasses import dataclass
|
|
5
6
|
from typing import Any, Callable, Literal, Mapping, Sequence, cast
|
|
6
7
|
|
|
7
8
|
from bec_lib import bec_logger
|
|
8
9
|
from bec_qthemes import material_icon
|
|
9
|
-
from qtpy.QtCore import QByteArray, QSettings, QSize, Qt, QTimer
|
|
10
|
+
from qtpy.QtCore import QByteArray, QEvent, QObject, QSettings, QSize, Qt, QTimer
|
|
10
11
|
from qtpy.QtGui import QIcon
|
|
11
12
|
from qtpy.QtWidgets import QApplication, QDialog, QVBoxLayout, QWidget
|
|
12
13
|
from shiboken6 import isValid
|
|
@@ -26,6 +27,11 @@ from bec_widgets.widgets.containers.qt_ads import (
|
|
|
26
27
|
|
|
27
28
|
logger = bec_logger.logger
|
|
28
29
|
|
|
30
|
+
# Dynamic property tagging a splitter with its latest layout-ratio request; deferred applies of
|
|
31
|
+
# older requests compare against it and skip themselves.
|
|
32
|
+
_RATIO_REQUEST_PROPERTY = "_bec_layout_ratio_request"
|
|
33
|
+
_ratio_requests = itertools.count(1)
|
|
34
|
+
|
|
29
35
|
|
|
30
36
|
class DockSettingsDialog(QDialog):
|
|
31
37
|
"""Generic settings editor shown from dock title bar actions."""
|
|
@@ -39,6 +45,60 @@ class DockSettingsDialog(QDialog):
|
|
|
39
45
|
layout.addWidget(self.prop_editor)
|
|
40
46
|
|
|
41
47
|
|
|
48
|
+
class _ResizeWatcher(QObject):
|
|
49
|
+
"""
|
|
50
|
+
One-shot event filter that runs a callback after the watched widget was resized.
|
|
51
|
+
|
|
52
|
+
Used to defer work that needs real geometry (e.g. splitter ratios) without polling the
|
|
53
|
+
event loop. The watcher is parented to the watched widget, so it dies with it.
|
|
54
|
+
"""
|
|
55
|
+
|
|
56
|
+
def __init__(self, target: QWidget, callback: Callable[[], None]):
|
|
57
|
+
super().__init__(target)
|
|
58
|
+
self._callback = callback
|
|
59
|
+
target.installEventFilter(self)
|
|
60
|
+
|
|
61
|
+
@classmethod
|
|
62
|
+
def watch(cls, target: QWidget, callback: Callable[[], None]) -> _ResizeWatcher:
|
|
63
|
+
"""
|
|
64
|
+
Run ``callback`` once after ``target`` is next resized, replacing a pending watcher.
|
|
65
|
+
|
|
66
|
+
Args:
|
|
67
|
+
target(QWidget): Widget to watch.
|
|
68
|
+
callback(Callable[[], None]): Called (deferred, bound to ``target``) after the resize.
|
|
69
|
+
|
|
70
|
+
Returns:
|
|
71
|
+
_ResizeWatcher: The new watcher.
|
|
72
|
+
"""
|
|
73
|
+
cls.cancel_pending(target)
|
|
74
|
+
return cls(target, callback)
|
|
75
|
+
|
|
76
|
+
@classmethod
|
|
77
|
+
def cancel_pending(cls, target: QWidget) -> None:
|
|
78
|
+
"""
|
|
79
|
+
Cancel every watcher still waiting for a resize of ``target``.
|
|
80
|
+
|
|
81
|
+
Args:
|
|
82
|
+
target(QWidget): Widget whose pending watchers are cancelled.
|
|
83
|
+
"""
|
|
84
|
+
for pending in target.findChildren(cls, options=Qt.FindChildOption.FindDirectChildrenOnly):
|
|
85
|
+
pending.cancel()
|
|
86
|
+
|
|
87
|
+
def cancel(self) -> None:
|
|
88
|
+
"""Stop watching and schedule the watcher for deletion."""
|
|
89
|
+
target = self.parent()
|
|
90
|
+
if target is not None:
|
|
91
|
+
target.removeEventFilter(self)
|
|
92
|
+
self.deleteLater()
|
|
93
|
+
|
|
94
|
+
def eventFilter(self, watched: QObject, event: QEvent) -> bool:
|
|
95
|
+
if event.type() == QEvent.Type.Resize:
|
|
96
|
+
self.cancel()
|
|
97
|
+
# Deferred so the widget finishes its own resize handling first.
|
|
98
|
+
QTimer.singleShot(0, watched, self._callback)
|
|
99
|
+
return False
|
|
100
|
+
|
|
101
|
+
|
|
42
102
|
class DockAreaWidget(BECWidget, QWidget):
|
|
43
103
|
"""
|
|
44
104
|
Lightweight dock area that exposes the core Qt ADS docking helpers without any
|
|
@@ -690,6 +750,12 @@ class DockAreaWidget(BECWidget, QWidget):
|
|
|
690
750
|
"""
|
|
691
751
|
Apply weight ratios to a splitter once geometry is available.
|
|
692
752
|
|
|
753
|
+
The deferred callback is bound to the splitter as context object, so Qt drops it
|
|
754
|
+
if the splitter is deleted (e.g. by ADS while the layout changes) before it runs.
|
|
755
|
+
While the splitter has no usable size, the ratios wait for its next resize. Every request
|
|
756
|
+
tags the splitter, so a deferred apply of an older request skips itself once a newer one
|
|
757
|
+
for the same splitter exists.
|
|
758
|
+
|
|
693
759
|
Args:
|
|
694
760
|
splitter(QtAds.CDockSplitter): Target splitter.
|
|
695
761
|
weights(Sequence[float] | Mapping[int | str, float] | None): Weight specification.
|
|
@@ -701,7 +767,12 @@ class DockAreaWidget(BECWidget, QWidget):
|
|
|
701
767
|
if not ratios:
|
|
702
768
|
return
|
|
703
769
|
|
|
770
|
+
request = next(_ratio_requests)
|
|
771
|
+
splitter.setProperty(_RATIO_REQUEST_PROPERTY, request)
|
|
772
|
+
|
|
704
773
|
def apply():
|
|
774
|
+
if splitter.property(_RATIO_REQUEST_PROPERTY) != request:
|
|
775
|
+
return # superseded by a newer request for this splitter
|
|
705
776
|
count = splitter.count()
|
|
706
777
|
if count != len(ratios):
|
|
707
778
|
return
|
|
@@ -711,7 +782,10 @@ class DockAreaWidget(BECWidget, QWidget):
|
|
|
711
782
|
splitter.width() if orientation == Qt.Orientation.Horizontal else splitter.height()
|
|
712
783
|
)
|
|
713
784
|
if total_px <= count:
|
|
714
|
-
|
|
785
|
+
# No usable geometry yet (e.g. the dock area is collapsed to zero size). Retry
|
|
786
|
+
# when the splitter is resized instead of re-arming a 0 ms timer, which would
|
|
787
|
+
# busy-poll the event loop for as long as the splitter stays empty.
|
|
788
|
+
_ResizeWatcher.watch(splitter, apply)
|
|
715
789
|
return
|
|
716
790
|
|
|
717
791
|
total = sum(ratios)
|
|
@@ -726,7 +800,9 @@ class DockAreaWidget(BECWidget, QWidget):
|
|
|
726
800
|
for i, weight in enumerate(ratios):
|
|
727
801
|
splitter.setStretchFactor(i, max(1, int(round(weight * 100))))
|
|
728
802
|
|
|
729
|
-
|
|
803
|
+
# A retry still waiting for an earlier request's resize must not overwrite these ratios.
|
|
804
|
+
_ResizeWatcher.cancel_pending(splitter)
|
|
805
|
+
QTimer.singleShot(0, splitter, apply)
|
|
730
806
|
|
|
731
807
|
def _normalize_override_keys(
|
|
732
808
|
self,
|
|
@@ -1001,8 +1077,11 @@ class DockAreaWidget(BECWidget, QWidget):
|
|
|
1001
1077
|
return
|
|
1002
1078
|
|
|
1003
1079
|
def schedule(next_attempt: int):
|
|
1080
|
+
# Bound to the dock: Qt drops the retry if the dock is deleted before it fires.
|
|
1004
1081
|
QTimer.singleShot(
|
|
1005
|
-
50,
|
|
1082
|
+
50,
|
|
1083
|
+
dock,
|
|
1084
|
+
lambda: self._apply_floating_state_to_dock(dock, state, attempt=next_attempt),
|
|
1006
1085
|
)
|
|
1007
1086
|
|
|
1008
1087
|
container = dock.floatingDockContainer()
|
|
@@ -145,27 +145,49 @@ class CheckBoxDelegate(QtWidgets.QStyledItemDelegate):
|
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
class SortTableItem(QtWidgets.QTableWidgetItem):
|
|
148
|
-
"""
|
|
148
|
+
"""
|
|
149
|
+
Table item that sorts by the value stored under the UserRole data role.
|
|
150
|
+
|
|
151
|
+
If either item has no UserRole data, the items are compared by their text.
|
|
152
|
+
|
|
153
|
+
Args:
|
|
154
|
+
*args: Positional arguments forwarded to QTableWidgetItem.
|
|
155
|
+
sort_key (Callable[[Any], Any] | None): Optional callable that maps the UserRole data
|
|
156
|
+
to the value that is compared. If None, the UserRole data is compared directly.
|
|
157
|
+
**kwargs: Keyword arguments forwarded to QTableWidgetItem.
|
|
158
|
+
"""
|
|
159
|
+
|
|
160
|
+
def __init__(self, *args, sort_key: Callable[[Any], Any] | None = None, **kwargs) -> None:
|
|
161
|
+
super().__init__(*args, **kwargs)
|
|
162
|
+
self._sort_key = sort_key
|
|
163
|
+
|
|
164
|
+
def _sort_values(self, other: QtWidgets.QTableWidgetItem) -> tuple[Any, Any] | None:
|
|
165
|
+
"""Return the values to compare, or None if either item has no UserRole data."""
|
|
166
|
+
self_data = self.data(QtCore.Qt.ItemDataRole.UserRole)
|
|
167
|
+
other_data = other.data(QtCore.Qt.ItemDataRole.UserRole)
|
|
168
|
+
if self_data is None or other_data is None:
|
|
169
|
+
return None
|
|
170
|
+
if self._sort_key is None:
|
|
171
|
+
return self_data, other_data
|
|
172
|
+
return self._sort_key(self_data), self._sort_key(other_data)
|
|
149
173
|
|
|
150
174
|
def __lt__(self, other: QtWidgets.QTableWidgetItem) -> bool:
|
|
151
175
|
"""Override less-than operator for sorting."""
|
|
152
176
|
if not isinstance(other, QtWidgets.QTableWidgetItem):
|
|
153
177
|
return NotImplemented
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
return super().__lt__(other)
|
|
178
|
+
values = self._sort_values(other)
|
|
179
|
+
if values is not None:
|
|
180
|
+
return values[0] < values[1]
|
|
181
|
+
return self.text() < other.text()
|
|
159
182
|
|
|
160
183
|
def __gt__(self, other: QtWidgets.QTableWidgetItem) -> bool:
|
|
161
|
-
"""Override
|
|
184
|
+
"""Override greater-than operator for sorting."""
|
|
162
185
|
if not isinstance(other, QtWidgets.QTableWidgetItem):
|
|
163
186
|
return NotImplemented
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
return super().__gt__(other)
|
|
187
|
+
values = self._sort_values(other)
|
|
188
|
+
if values is not None:
|
|
189
|
+
return values[0] > values[1]
|
|
190
|
+
return self.text() > other.text()
|
|
169
191
|
|
|
170
192
|
|
|
171
193
|
class DeviceTable(BECWidget, QtWidgets.QWidget):
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import os
|
|
2
2
|
|
|
3
|
+
from qtpy.QtGui import QColor
|
|
3
4
|
from qtpy.QtWidgets import QFrame, QScrollArea, QVBoxLayout, QWidget
|
|
4
5
|
|
|
5
6
|
from bec_widgets.utils.error_popups import SafeSlot
|
|
@@ -55,7 +56,7 @@ class MotorMapSettings(SettingWidget):
|
|
|
55
56
|
def connect_all_signals(self):
|
|
56
57
|
for widget in self.ui_widget_list:
|
|
57
58
|
WidgetIO.connect_widget_change_signal(widget, self.set_property)
|
|
58
|
-
self.ui.color_scatter.
|
|
59
|
+
self.ui.color_scatter.color_changed.connect(
|
|
59
60
|
lambda color: self.target_widget.setProperty("color_scatter", color)
|
|
60
61
|
)
|
|
61
62
|
|
|
@@ -98,8 +99,7 @@ class MotorMapSettings(SettingWidget):
|
|
|
98
99
|
if widget_to_set is None:
|
|
99
100
|
return
|
|
100
101
|
if widget_to_set is self.ui.color_scatter:
|
|
101
|
-
|
|
102
|
-
self.ui.color_scatter.set_color(value)
|
|
102
|
+
self._show_color(value)
|
|
103
103
|
return
|
|
104
104
|
# Block signals to avoid triggering set_property again
|
|
105
105
|
was_blocked = widget_to_set.blockSignals(True)
|
|
@@ -115,7 +115,18 @@ class MotorMapSettings(SettingWidget):
|
|
|
115
115
|
value = getattr(self.target_widget, property_name)
|
|
116
116
|
WidgetIO.set_value(widget, value)
|
|
117
117
|
|
|
118
|
-
self.
|
|
118
|
+
self._show_color(self.target_widget.color)
|
|
119
|
+
|
|
120
|
+
def _show_color(self, color: tuple | str):
|
|
121
|
+
"""
|
|
122
|
+
Show a color on the color button without sending it back to the target widget.
|
|
123
|
+
|
|
124
|
+
Args:
|
|
125
|
+
color(tuple|str): The color to show, as an RGBA tuple or a HEX string.
|
|
126
|
+
"""
|
|
127
|
+
was_blocked = self.ui.color_scatter.blockSignals(True)
|
|
128
|
+
self.ui.color_scatter.set_color(color)
|
|
129
|
+
self.ui.color_scatter.blockSignals(was_blocked)
|
|
119
130
|
|
|
120
131
|
def accept_changes(self):
|
|
121
132
|
"""
|
|
@@ -126,4 +137,6 @@ class MotorMapSettings(SettingWidget):
|
|
|
126
137
|
value = WidgetIO.get_value(widget)
|
|
127
138
|
setattr(self.target_widget, property_name, value)
|
|
128
139
|
|
|
129
|
-
|
|
140
|
+
# The button only holds RGB, so keep the target's alpha when the color is unchanged
|
|
141
|
+
if QColor(self.ui.color_scatter.color).rgb() != self.target_widget.color_scatter.rgb():
|
|
142
|
+
self.target_widget.color_scatter = self.ui.color_scatter.color
|
|
@@ -104,15 +104,15 @@
|
|
|
104
104
|
</widget>
|
|
105
105
|
</item>
|
|
106
106
|
<item row="5" column="1">
|
|
107
|
-
<widget class="
|
|
107
|
+
<widget class="ColorButtonNative" name="color_scatter"/>
|
|
108
108
|
</item>
|
|
109
109
|
</layout>
|
|
110
110
|
</widget>
|
|
111
111
|
<customwidgets>
|
|
112
112
|
<customwidget>
|
|
113
|
-
<class>
|
|
114
|
-
<extends>
|
|
115
|
-
<header>
|
|
113
|
+
<class>ColorButtonNative</class>
|
|
114
|
+
<extends>QPushButton</extends>
|
|
115
|
+
<header>color_button_native</header>
|
|
116
116
|
</customwidget>
|
|
117
117
|
</customwidgets>
|
|
118
118
|
<resources/>
|
bec_widgets-3.40.4/bec_widgets/widgets/plots/multi_waveform/toolbar_components/monitor_selection.py
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
from bec_lib.device import ReadoutPriority
|
|
2
|
+
from qtpy.QtWidgets import QWidget
|
|
3
|
+
|
|
4
|
+
from bec_widgets.utils.toolbars.actions import DeviceComboBoxAction, WidgetAction
|
|
5
|
+
from bec_widgets.utils.toolbars.bundles import ToolbarComponents
|
|
6
|
+
from bec_widgets.utils.toolbars.toolbar import ToolbarBundle
|
|
7
|
+
from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import BECDeviceFilter
|
|
8
|
+
from bec_widgets.widgets.utility.visual.colormap_widget.colormap_widget import BECColorMapWidget
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def monitor_selection_bundle(
|
|
12
|
+
components: ToolbarComponents, target_widget: QWidget
|
|
13
|
+
) -> ToolbarBundle:
|
|
14
|
+
"""
|
|
15
|
+
Creates a monitor selection toolbar bundle.
|
|
16
|
+
|
|
17
|
+
Args:
|
|
18
|
+
components (ToolbarComponents): The components to be added to the bundle.
|
|
19
|
+
|
|
20
|
+
Returns:
|
|
21
|
+
ToolbarBundle: The monitor selection toolbar bundle.
|
|
22
|
+
"""
|
|
23
|
+
components.add_safe(
|
|
24
|
+
"monitor_selection",
|
|
25
|
+
DeviceComboBoxAction(
|
|
26
|
+
target_widget=target_widget,
|
|
27
|
+
device_filter=[BECDeviceFilter.DEVICE],
|
|
28
|
+
readout_priority_filter=ReadoutPriority.ASYNC,
|
|
29
|
+
add_empty_item=True,
|
|
30
|
+
no_check_delegate=True,
|
|
31
|
+
),
|
|
32
|
+
)
|
|
33
|
+
components.add_safe(
|
|
34
|
+
"color_map", WidgetAction(widget=BECColorMapWidget(cmap="plasma"), adjust_size=False)
|
|
35
|
+
)
|
|
36
|
+
bundle = ToolbarBundle("monitor_selection", components)
|
|
37
|
+
bundle.add_action("monitor_selection")
|
|
38
|
+
bundle.add_action("color_map")
|
|
39
|
+
return bundle
|