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.
Files changed (587) hide show
  1. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/pytest-matrix.yml +1 -0
  2. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/pytest.yml +1 -8
  3. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.gitignore +0 -3
  4. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/AGENTS.md +0 -1
  5. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/CHANGELOG.md +62 -0
  6. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/PKG-INFO +1 -1
  7. {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
  8. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/client_utils.py +0 -14
  9. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/designer_plugins.py +0 -2
  10. bec_widgets-3.40.4/bec_widgets/utils/rpc_decorator.py +12 -0
  11. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/actions.py +0 -73
  12. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/basic_dock_area.py +83 -4
  13. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/device_table/device_table.py +34 -12
  14. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +18 -5
  15. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +4 -4
  16. bec_widgets-3.40.4/bec_widgets/widgets/plots/multi_waveform/toolbar_components/monitor_selection.py +39 -0
  17. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_config_dialog.py +4 -58
  18. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +5 -2
  19. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/pyproject.toml +1 -1
  20. bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/main.py +0 -18
  21. bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -13
  22. bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -4
  23. bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -135
  24. bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -73
  25. bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -68
  26. bec_widgets-3.40.2/bec_widgets/utils/layout_manager.py +0 -121
  27. bec_widgets-3.40.2/bec_widgets/utils/redis_message_waiter.py +0 -49
  28. bec_widgets-3.40.2/bec_widgets/utils/reference_utils.py +0 -93
  29. bec_widgets-3.40.2/bec_widgets/utils/rpc_decorator.py +0 -29
  30. bec_widgets-3.40.2/bec_widgets/utils/thread_checker.py +0 -37
  31. bec_widgets-3.40.2/bec_widgets/widgets/plots/multi_waveform/toolbar_components/monitor_selection.py +0 -100
  32. bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -74
  33. bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -1
  34. bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -57
  35. bec_widgets-3.40.2/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -17
  36. bec_widgets-3.40.2/bec_widgets/widgets/utility/widget_finder/__init__.py +0 -0
  37. bec_widgets-3.40.2/bec_widgets/widgets/utility/widget_hierarchy_tree/__init__.py +0 -0
  38. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.git_hooks/pre-commit +0 -0
  39. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  40. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
  41. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  42. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/actions/bw_install/action.yml +0 -0
  43. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/dependabot.yml +0 -0
  44. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/pull_request_template.md +0 -0
  45. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/aggregate_benchmarks.py +0 -0
  46. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/compare_benchmarks.py +0 -0
  47. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/run_benchmarks.sh +0 -0
  48. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/scripts/run_with_bec_servers.py +0 -0
  49. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/benchmark.yml +0 -0
  50. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/check_pr.yml +0 -0
  51. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/child_repos.yml +0 -0
  52. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/ci.yml +0 -0
  53. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/end2end-conda.yml +0 -0
  54. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/formatter.yml +0 -0
  55. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/generate-cli-check.yml +0 -0
  56. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/semantic_release.yml +0 -0
  57. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/stale-issues.yml +0 -0
  58. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.github/workflows/sync-issues-pr.yml +0 -0
  59. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/.pylintrc +0 -0
  60. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/CLAUDE.md +0 -0
  61. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/LICENSE +0 -0
  62. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/README.md +0 -0
  63. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/THIRD-PARTY-LICENCES +0 -0
  64. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/__init__.py +0 -0
  65. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/__init__.py +0 -0
  66. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/bw_launch.py +0 -0
  67. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/companion_app.py +0 -0
  68. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/launch_window.py +0 -0
  69. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/main_app.py +0 -0
  70. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/__init__.py +0 -0
  71. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/reveal_animator.py +0 -0
  72. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/side_bar.py +0 -0
  73. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/navigation_centre/side_bar_components.py +0 -0
  74. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/startup_profiler.py +0 -0
  75. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/__init__.py +0 -0
  76. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/admin_view/__init__.py +0 -0
  77. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/admin_view/admin_view.py +0 -0
  78. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/developer_view/__init__.py +0 -0
  79. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/developer_view/developer_view.py +0 -0
  80. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/developer_view/developer_widget.py +0 -0
  81. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/__init__.py +0 -0
  82. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_dialogs/__init__.py +0 -0
  83. {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
  84. {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
  85. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_display_widget.py +0 -0
  86. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_view.py +0 -0
  87. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/device_manager_view/device_manager_widget.py +0 -0
  88. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/dock_area_view/__init__.py +0 -0
  89. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/dock_area_view/dock_area_view.py +0 -0
  90. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/applications/views/view.py +0 -0
  91. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  92. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/auto_update.png +0 -0
  93. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  94. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
  95. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
  96. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/__init__.py +0 -0
  97. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/client.py +0 -0
  98. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/rpc/__init__.py +0 -0
  99. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/cli/rpc/rpc_base.py +0 -0
  100. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/examples/__init__.py +0 -0
  101. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  102. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  103. {bec_widgets-3.40.2/bec_widgets/examples/plugin_example_pyside → bec_widgets-3.40.4/bec_widgets/tests}/__init__.py +0 -0
  104. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/client_mocks.py +0 -0
  105. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/fake_devices.py +0 -0
  106. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/fixtures.py +0 -0
  107. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/testable_qtimer.py +0 -0
  108. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/tests/utils.py +0 -0
  109. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/__init__.py +0 -0
  110. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_connector.py +0 -0
  111. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_designer.py +0 -0
  112. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_dispatcher.py +0 -0
  113. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_list.py +0 -0
  114. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_login.py +0 -0
  115. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_plugin_helper.py +0 -0
  116. {bec_widgets-3.40.2/bec_widgets/tests → bec_widgets-3.40.4/bec_widgets/utils/bec_plugin_manager}/__init__.py +0 -0
  117. {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
  118. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_plugin_manager/create/widget.py +0 -0
  119. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_plugin_manager/edit_ui.py +0 -0
  120. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  121. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/bec_widget.py +0 -0
  122. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/busy_loader.py +0 -0
  123. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/clickable_label.py +0 -0
  124. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
  125. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/colors.py +0 -0
  126. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/container_utils.py +0 -0
  127. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/crosshair.py +0 -0
  128. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/eliding_label.py +0 -0
  129. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/entry_validator.py +0 -0
  130. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/error_popups.py +0 -0
  131. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/expandable_frame.py +0 -0
  132. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/filter_io.py +0 -0
  133. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/flow_layout.py +0 -0
  134. {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
  135. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/forms.py +0 -0
  136. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/items.py +0 -0
  137. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/pydantic_model_info_adapter.py +0 -0
  138. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/pydantic_widget_form.py +0 -0
  139. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/forms_from_types/styles.py +0 -0
  140. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/fps_counter.py +0 -0
  141. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/fuzzy_search.py +0 -0
  142. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/generate_cli.py +0 -0
  143. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  144. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/guided_tour.py +0 -0
  145. {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
  146. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/help_inspector/help_inspector.py +0 -0
  147. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/launch_progress.py +0 -0
  148. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/launcher_ready.py +0 -0
  149. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/linear_region_selector.py +0 -0
  150. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/list_of_expandable_frames.py +0 -0
  151. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/name_utils.py +0 -0
  152. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  153. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/palette_viewer.py +0 -0
  154. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plot_indicator_items.py +0 -0
  155. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  156. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plugin_templates/register.template +0 -0
  157. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/plugin_utils.py +0 -0
  158. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/property_editor.py +0 -0
  159. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/round_frame.py +0 -0
  160. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_logging.py +0 -0
  161. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_register.py +0 -0
  162. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_server.py +0 -0
  163. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/rpc_widget_handler.py +0 -0
  164. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/scan_arg_metadata.py +0 -0
  165. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/screen_utils.py +0 -0
  166. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/serialization.py +0 -0
  167. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/settings_dialog.py +0 -0
  168. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/side_panel.py +0 -0
  169. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/signal_classification.py +0 -0
  170. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/bundles.py +0 -0
  171. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/connections.py +0 -0
  172. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/performance.py +0 -0
  173. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/splitter.py +0 -0
  174. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/toolbars/toolbar.py +0 -0
  175. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/ui_loader.py +0 -0
  176. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/widget_highlighter.py +0 -0
  177. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/widget_io.py +0 -0
  178. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/widget_state_manager.py +0 -0
  179. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/utils/yaml_dialog.py +0 -0
  180. {bec_widgets-3.40.2/bec_widgets/utils/help_inspector → bec_widgets-3.40.4/bec_widgets/widgets}/__init__.py +0 -0
  181. {bec_widgets-3.40.2/bec_widgets/widgets → bec_widgets-3.40.4/bec_widgets/widgets/containers}/__init__.py +0 -0
  182. {bec_widgets-3.40.2/bec_widgets/widgets/containers → bec_widgets-3.40.4/bec_widgets/widgets/containers/auto_update}/__init__.py +0 -0
  183. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
  184. {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
  185. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/dock_area.py +0 -0
  186. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/profile_utils.py +0 -0
  187. {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
  188. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/settings/dialogs.py +0 -0
  189. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/settings/workspace_manager.py +0 -0
  190. {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
  191. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/dock_area/toolbar_components/workspace_actions.py +0 -0
  192. {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
  193. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/explorer/collapsible_tree_section.py +0 -0
  194. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/explorer/explorer.py +0 -0
  195. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/explorer/file_browser_tree_widget.py +0 -0
  196. {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
  197. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
  198. {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
  199. {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
  200. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/hover_widget.py +0 -0
  201. {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
  202. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/notification_center/notification_banner.py +0 -0
  203. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/scroll_label.py +0 -0
  204. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
  205. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/bec_main_window.pyproject +0 -0
  206. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/bec_main_window_plugin.py +0 -0
  207. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
  208. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/main_window/register_bec_main_window.py +0 -0
  209. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/qt_ads/__init__.py +0 -0
  210. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/qt_ads/__init__.pyi +0 -0
  211. {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
  212. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/containers/qt_ads/ads/__init__.pyi +0 -0
  213. {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
  214. {bec_widgets-3.40.2/bec_widgets/widgets/control → bec_widgets-3.40.4/bec_widgets/widgets/control/buttons}/__init__.py +0 -0
  215. {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
  216. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  217. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  218. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  219. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  220. {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
  221. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  222. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  223. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  224. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  225. {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
  226. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  227. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  228. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  229. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  230. {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
  231. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  232. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  233. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  234. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  235. {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
  236. {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
  237. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  238. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  239. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  240. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  241. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
  242. {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
  243. {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
  244. {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
  245. {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
  246. {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
  247. {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
  248. {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
  249. {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
  250. {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
  251. {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
  252. {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
  253. {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
  254. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_base.py +0 -0
  255. {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
  256. {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
  257. {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
  258. {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
  259. {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
  260. {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
  261. {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
  262. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  263. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  264. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  265. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  266. {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
  267. {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
  268. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  269. {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
  270. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  271. {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
  272. {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
  273. {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
  274. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
  275. {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
  276. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  277. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/__init__.py +0 -0
  278. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/__init__.py +0 -0
  279. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/_util.py +0 -0
  280. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/available_device_resources/__init__.py +0 -0
  281. {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
  282. {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
  283. {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
  284. {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
  285. {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
  286. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/constants.py +0 -0
  287. {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
  288. {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
  289. {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
  290. {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
  291. {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
  292. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/dm_config_view.py +0 -0
  293. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/dm_docstring_view.py +0 -0
  294. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/__init__.py +0 -0
  295. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/device_manager/components/ophyd_validation/ophyd_validation.py +0 -0
  296. {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
  297. {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
  298. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  299. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  300. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  301. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  302. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  303. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_docstring.py +0 -0
  304. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  305. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_info_adapter.py +0 -0
  306. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_info_dialog.py +0 -0
  307. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/control/scan_control/scan_selection_dialog.py +0 -0
  308. {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
  309. {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
  310. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  311. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  312. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  313. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  314. {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
  315. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  316. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  317. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  318. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  319. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  320. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  321. {bec_widgets-3.40.2/bec_widgets/widgets/dap/lmfit_dialog → bec_widgets-3.40.4/bec_widgets/widgets/editors}/__init__.py +0 -0
  322. {bec_widgets-3.40.2/bec_widgets/widgets/editors → bec_widgets-3.40.4/bec_widgets/widgets/editors/bec_console}/__init__.py +0 -0
  323. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_console.py +0 -0
  324. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_console.pyproject +0 -0
  325. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_console_plugin.py +0 -0
  326. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_shell.pyproject +0 -0
  327. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/bec_shell_plugin.py +0 -0
  328. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/register_bec_console.py +0 -0
  329. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/bec_console/register_bec_shell.py +0 -0
  330. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
  331. {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
  332. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  333. {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
  334. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_dock.py +0 -0
  335. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_widget.py +0 -0
  336. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_widget.pyproject +0 -0
  337. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/monaco_widget_plugin.py +0 -0
  338. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/register_monaco_widget.py +0 -0
  339. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/monaco/scan_control_dialog.py +0 -0
  340. {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
  341. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/register_sbb_monitor.py +0 -0
  342. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor.py +0 -0
  343. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor.pyproject +0 -0
  344. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/sbb_monitor/sbb_monitor_plugin.py +0 -0
  345. {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
  346. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
  347. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
  348. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
  349. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
  350. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
  351. {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
  352. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  353. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  354. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  355. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  356. {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
  357. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  358. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/website.py +0 -0
  359. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  360. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  361. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/__init__.py +0 -0
  362. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/minesweeper.py +0 -0
  363. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
  364. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
  365. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
  366. {bec_widgets-3.40.2/bec_widgets/widgets/editors/website → bec_widgets-3.40.4/bec_widgets/widgets/plots}/__init__.py +0 -0
  367. {bec_widgets-3.40.2/bec_widgets/widgets/plots → bec_widgets-3.40.4/bec_widgets/widgets/plots/heatmap}/__init__.py +0 -0
  368. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/heatmap.py +0 -0
  369. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/heatmap.pyproject +0 -0
  370. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/heatmap_plugin.py +0 -0
  371. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/register_heatmap.py +0 -0
  372. {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
  373. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/settings/heatmap_setting.py +0 -0
  374. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/settings/heatmap_settings_horizontal.ui +0 -0
  375. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/heatmap/settings/heatmap_settings_vertical.ui +0 -0
  376. {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
  377. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/bec_histogram_lut_item.py +0 -0
  378. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image.py +0 -0
  379. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
  380. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_base.py +0 -0
  381. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_item.py +0 -0
  382. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
  383. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
  384. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/image_roi_plot.py +0 -0
  385. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/register_image.py +0 -0
  386. {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
  387. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
  388. {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
  389. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/toolbar_components/device_selection.py +0 -0
  390. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/image/toolbar_components/image_base_actions.py +0 -0
  391. {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
  392. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
  393. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
  394. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
  395. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
  396. {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
  397. {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
  398. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/motor_map/toolbar_components/motor_selection.py +0 -0
  399. {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
  400. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
  401. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
  402. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
  403. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
  404. {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
  405. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
  406. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
  407. {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
  408. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/plot_base.py +0 -0
  409. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/plot_info_label.py +0 -0
  410. {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
  411. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
  412. {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
  413. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
  414. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
  415. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
  416. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
  417. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
  418. {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
  419. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
  420. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
  421. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
  422. {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
  423. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
  424. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
  425. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
  426. {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
  427. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/axis_settings_popup.py +0 -0
  428. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/mouse_interactions.py +0 -0
  429. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/plot_export.py +0 -0
  430. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/toolbar_components/roi.py +0 -0
  431. {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
  432. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
  433. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
  434. {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
  435. {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
  436. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
  437. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
  438. {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
  439. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/utils/alignment_controller.py +0 -0
  440. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/utils/alignment_panel.py +0 -0
  441. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
  442. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/waveform.py +0 -0
  443. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
  444. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
  445. {bec_widgets-3.40.2/bec_widgets/widgets/plots/waveform/utils → bec_widgets-3.40.4/bec_widgets/widgets/progress}/__init__.py +0 -0
  446. {bec_widgets-3.40.2/bec_widgets/widgets/progress → bec_widgets-3.40.4/bec_widgets/widgets/progress/bec_progressbar}/__init__.py +0 -0
  447. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  448. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  449. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
  450. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  451. {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
  452. {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
  453. {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
  454. {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
  455. {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
  456. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/progress_backend.py +0 -0
  457. {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
  458. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  459. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  460. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  461. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  462. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  463. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_settings_cards.py +0 -0
  464. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/ring_progress_bar/ring_settings.ui +0 -0
  465. {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
  466. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/register_scan_progress_bar.py +0 -0
  467. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar.pyproject +0 -0
  468. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar_plugin.py +0 -0
  469. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.py +0 -0
  470. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.ui +0 -0
  471. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar_one_line.ui +0 -0
  472. {bec_widgets-3.40.2/bec_widgets/widgets/progress/scan_progressbar → bec_widgets-3.40.4/bec_widgets/widgets/services}/__init__.py +0 -0
  473. {bec_widgets-3.40.2/bec_widgets/widgets/services → bec_widgets-3.40.4/bec_widgets/widgets/services/beamline_states}/__init__.py +0 -0
  474. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_manager.py +0 -0
  475. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_manager.pyproject +0 -0
  476. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_manager_plugin.py +0 -0
  477. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/beamline_state_pill.py +0 -0
  478. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/dialogs.py +0 -0
  479. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/beamline_states/register_beamline_state_manager.py +0 -0
  480. {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
  481. {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
  482. {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
  483. {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
  484. {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
  485. {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
  486. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_atlas_admin_view/experiment_selection/utils.py +0 -0
  487. {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
  488. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  489. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  490. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  491. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  492. {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
  493. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
  494. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  495. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  496. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  497. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  498. {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
  499. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
  500. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  501. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  502. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  503. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  504. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/config_communicator.py +0 -0
  505. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_config_form.py +0 -0
  506. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
  507. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/device_item/device_signal_display.py +0 -0
  508. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  509. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/device_browser/util.py +0 -0
  510. {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
  511. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/components/__init__.py +0 -0
  512. {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
  513. {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
  514. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/components/scan_history_view.py +0 -0
  515. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/services/scan_history_browser/scan_history_browser.py +0 -0
  516. {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
  517. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/__init__.py +0 -0
  518. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/protocol.py +0 -0
  519. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/qtermwidget_wrapper.py +0 -0
  520. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/bec_term/util.py +0 -0
  521. {bec_widgets-3.40.2/bec_widgets/widgets/utility → bec_widgets-3.40.4/bec_widgets/widgets/utility/feedback_dialog}/__init__.py +0 -0
  522. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/feedback_dialog/feedback_dialog.py +0 -0
  523. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/ide_explorer.py +0 -0
  524. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/ide_explorer.pyproject +0 -0
  525. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/ide_explorer_plugin.py +0 -0
  526. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/ide_explorer/register_ide_explorer.py +0 -0
  527. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
  528. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
  529. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
  530. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
  531. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
  532. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer.py +0 -0
  533. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer_widget.pyproject +0 -0
  534. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/pdf_viewer_widget_plugin.py +0 -0
  535. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/pdf_viewer/register_pdf_viewer_widget.py +0 -0
  536. {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
  537. {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
  538. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combo_box.pyproject +0 -0
  539. {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
  540. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/scan_index_combobox/scan_index_combobox.py +0 -0
  541. {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
  542. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/register_signal_label.py +0 -0
  543. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/signal_label.py +0 -0
  544. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/signal_label.pyproject +0 -0
  545. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/signal_label/signal_label_plugin.py +0 -0
  546. {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
  547. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
  548. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
  549. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
  550. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
  551. {bec_widgets-3.40.2/bec_widgets/widgets/utility/spinbox → bec_widgets-3.40.4/bec_widgets/widgets/utility/spinner}/__init__.py +0 -0
  552. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  553. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  554. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  555. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  556. {bec_widgets-3.40.2/bec_widgets/widgets/utility/spinner → bec_widgets-3.40.4/bec_widgets/widgets/utility/toggle}/__init__.py +0 -0
  557. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  558. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
  559. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  560. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  561. {bec_widgets-3.40.2/bec_widgets/widgets/utility/toggle → bec_widgets-3.40.4/bec_widgets/widgets/utility/visual}/__init__.py +0 -0
  562. {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
  563. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
  564. {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
  565. {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
  566. {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
  567. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  568. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  569. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  570. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  571. {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
  572. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  573. {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
  574. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  575. {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
  576. {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
  577. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  578. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  579. {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
  580. {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
  581. {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
  582. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/register_widget_finder_combo_box.py +0 -0
  583. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/widget_finder.py +0 -0
  584. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/widget_finder_combo_box.pyproject +0 -0
  585. {bec_widgets-3.40.2 → bec_widgets-3.40.4}/bec_widgets/widgets/utility/widget_finder/widget_finder_combo_box_plugin.py +0 -0
  586. {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
  587. {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:
@@ -65,9 +65,6 @@ coverage.xml
65
65
  .pytest_cache/
66
66
  cover/
67
67
 
68
- # Output from end2end testing
69
- tests/reference_failures/
70
-
71
68
  # Translations
72
69
  *.mo
73
70
  *.pot
@@ -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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: bec_widgets
3
- Version: 3.40.2
3
+ Version: 3.40.4
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -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
- class SortTableItem(QtWidgets.QTableWidgetItem):
99
- """Custom TableWidgetItem with hidden __column_data attribute for sorting."""
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
- QTimer.singleShot(0, apply)
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
- QTimer.singleShot(0, apply)
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, lambda: self._apply_floating_state_to_dock(dock, state, attempt=next_attempt)
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
- """Custom TableWidgetItem with hidden __column_data attribute for sorting."""
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
- self_data = self.data(QtCore.Qt.ItemDataRole.UserRole)
155
- other_data = other.data(QtCore.Qt.ItemDataRole.UserRole)
156
- if self_data is not None and other_data is not None:
157
- return self_data < other_data
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 less-than operator for sorting."""
184
+ """Override greater-than operator for sorting."""
162
185
  if not isinstance(other, QtWidgets.QTableWidgetItem):
163
186
  return NotImplemented
164
- self_data = self.data(QtCore.Qt.ItemDataRole.UserRole)
165
- other_data = other.data(QtCore.Qt.ItemDataRole.UserRole)
166
- if self_data is not None and other_data is not None:
167
- return self_data > other_data
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.color_selected.connect(
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
- # Update the color scatter button
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.ui.color_scatter.set_color(self.target_widget.color)
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
- self.target_widget.color_scatter = self.ui.color_scatter.get_color()
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="ColorButton" name="color_scatter"/>
107
+ <widget class="ColorButtonNative" name="color_scatter"/>
108
108
  </item>
109
109
  </layout>
110
110
  </widget>
111
111
  <customwidgets>
112
112
  <customwidget>
113
- <class>ColorButton</class>
114
- <extends>QWidget</extends>
115
- <header>color_button</header>
113
+ <class>ColorButtonNative</class>
114
+ <extends>QPushButton</extends>
115
+ <header>color_button_native</header>
116
116
  </customwidget>
117
117
  </customwidgets>
118
118
  <resources/>
@@ -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