bec-widgets 2.16.1__tar.gz → 2.17.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (420) hide show
  1. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/CHANGELOG.md +71 -0
  2. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/PKG-INFO +3 -3
  3. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/applications/launch_window.py +1 -1
  4. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/client.py +24 -0
  5. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/tests/utils.py +33 -0
  6. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/main_window/main_window.py +122 -7
  7. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/waveform.py +46 -9
  8. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +135 -21
  9. bec_widgets-2.17.0/bec_widgets/widgets/progress/scan_progressbar/register_scan_progress_bar.py +17 -0
  10. bec_widgets-2.17.0/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar.pyproject +1 -0
  11. bec_widgets-2.17.0/bec_widgets/widgets/progress/scan_progressbar/scan_progress_bar_plugin.py +54 -0
  12. bec_widgets-2.17.0/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.py +320 -0
  13. bec_widgets-2.17.0/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar.ui +141 -0
  14. bec_widgets-2.17.0/bec_widgets/widgets/progress/scan_progressbar/scan_progressbar_one_line.ui +124 -0
  15. bec_widgets-2.17.0/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  16. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/pyproject.toml +6 -6
  17. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.git_hooks/pre-commit +0 -0
  18. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  19. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
  20. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  21. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/actions/bw_install/action.yml +0 -0
  22. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/pull_request_template.md +0 -0
  23. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/scripts/pr_issue_sync/pr_issue_sync.py +0 -0
  24. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/scripts/pr_issue_sync/requirements.txt +0 -0
  25. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/check_pr.yml +0 -0
  26. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/ci.yml +0 -0
  27. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/end2end-conda.yml +0 -0
  28. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/formatter.yml +0 -0
  29. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/generate-cli-check.yml +0 -0
  30. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/pytest-matrix.yml +0 -0
  31. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/pytest.yml +0 -0
  32. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/semantic_release.yml +0 -0
  33. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/stale-issues.yml +0 -0
  34. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.github/workflows/sync-issues-pr.yml +0 -0
  35. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.gitignore +0 -0
  36. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.gitlab-ci.yml +0 -0
  37. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.pylintrc +0 -0
  38. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/.readthedocs.yaml +0 -0
  39. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/LICENSE +0 -0
  40. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/README.md +0 -0
  41. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/__init__.py +0 -0
  42. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/applications/__init__.py +0 -0
  43. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/applications/bw_launch.py +0 -0
  44. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  45. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  46. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/assets/app_icons/auto_update.png +0 -0
  47. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  48. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
  49. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
  50. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/__init__.py +0 -0
  51. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/client_utils.py +0 -0
  52. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/generate_cli.py +0 -0
  53. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/rpc/__init__.py +0 -0
  54. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/rpc/rpc_base.py +0 -0
  55. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/rpc/rpc_register.py +0 -0
  56. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
  57. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/cli/server.py +0 -0
  58. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/__init__.py +0 -0
  59. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  60. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  61. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  62. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  63. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  64. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  65. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  66. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  67. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  68. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  69. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  70. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  71. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  72. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/tests/__init__.py +0 -0
  73. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/__init__.py +0 -0
  74. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/bec_connector.py +0 -0
  75. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/bec_designer.py +0 -0
  76. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  77. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/bec_plugin_helper.py +0 -0
  78. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  79. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/bec_table.py +0 -0
  80. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/bec_widget.py +0 -0
  81. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/clickable_label.py +0 -0
  82. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
  83. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/colors.py +0 -0
  84. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/compact_popup.py +0 -0
  85. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/container_utils.py +0 -0
  86. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/crosshair.py +0 -0
  87. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/entry_validator.py +0 -0
  88. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/error_popups.py +0 -0
  89. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/expandable_frame.py +0 -0
  90. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/filter_io.py +0 -0
  91. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
  92. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/forms_from_types/forms.py +0 -0
  93. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/forms_from_types/items.py +0 -0
  94. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/forms_from_types/styles.py +0 -0
  95. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/fps_counter.py +0 -0
  96. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  97. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/layout_manager.py +0 -0
  98. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  99. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/name_utils.py +0 -0
  100. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  101. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/palette_viewer.py +0 -0
  102. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  103. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  104. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  105. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/plugin_utils.py +0 -0
  106. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/redis_message_waiter.py +0 -0
  107. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/reference_utils.py +0 -0
  108. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/round_frame.py +0 -0
  109. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  110. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/rpc_server.py +0 -0
  111. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/serialization.py +0 -0
  112. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/settings_dialog.py +0 -0
  113. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/side_panel.py +0 -0
  114. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/thread_checker.py +0 -0
  115. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/toolbar.py +0 -0
  116. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/ui_loader.py +0 -0
  117. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/validator_delegate.py +0 -0
  118. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/widget_io.py +0 -0
  119. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/widget_state_manager.py +0 -0
  120. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  121. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/__init__.py +0 -0
  122. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/__init__.py +0 -0
  123. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
  124. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
  125. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
  126. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
  127. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
  128. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
  129. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
  130. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
  131. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
  132. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
  133. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
  134. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
  135. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/main_window/addons/scroll_label.py +0 -0
  136. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
  137. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/__init__.py +0 -0
  138. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
  139. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
  140. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  141. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  142. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  143. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  144. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
  145. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  146. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  147. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  148. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  149. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
  150. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  151. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  152. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  153. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  154. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
  155. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  156. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  157. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  158. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  159. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
  160. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
  161. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  162. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  163. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  164. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  165. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
  166. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
  167. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
  168. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
  169. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
  170. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
  171. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
  172. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
  173. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
  174. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
  175. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
  176. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
  177. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
  178. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
  179. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
  180. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
  181. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
  182. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
  183. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
  184. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
  185. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
  186. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  187. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  188. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  189. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  190. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
  191. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
  192. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
  193. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
  194. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
  195. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  196. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
  197. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  198. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
  199. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
  200. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
  201. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
  202. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
  203. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
  204. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
  205. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
  206. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
  207. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
  208. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  209. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
  210. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
  211. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
  212. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
  213. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
  214. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  215. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  216. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  217. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  218. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  219. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  220. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/__init__.py +0 -0
  221. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
  222. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  223. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  224. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  225. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  226. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
  227. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  228. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  229. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  230. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  231. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  232. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  233. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/__init__.py +0 -0
  234. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/dict_backed_table.py +0 -0
  235. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
  236. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  237. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
  238. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/scan_metadata/_util.py +0 -0
  239. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
  240. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
  241. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
  242. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
  243. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
  244. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  245. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  246. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  247. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  248. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
  249. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
  250. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
  251. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
  252. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
  253. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/web_console/register_web_console.py +0 -0
  254. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/web_console/web_console.py +0 -0
  255. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/web_console/web_console.pyproject +0 -0
  256. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/web_console/web_console_plugin.py +0 -0
  257. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/website/__init__.py +0 -0
  258. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  259. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/website/website.py +0 -0
  260. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  261. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  262. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/games/__init__.py +0 -0
  263. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/games/minesweeper.py +0 -0
  264. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
  265. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
  266. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
  267. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/__init__.py +0 -0
  268. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/__init__.py +0 -0
  269. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/image.py +0 -0
  270. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
  271. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/image_base.py +0 -0
  272. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/image_item.py +0 -0
  273. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
  274. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
  275. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/image_roi_plot.py +0 -0
  276. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/register_image.py +0 -0
  277. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/setting_widgets/__init__.py +0 -0
  278. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
  279. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/toolbar_bundles/__init__.py +0 -0
  280. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py +0 -0
  281. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +0 -0
  282. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
  283. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
  284. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
  285. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
  286. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
  287. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/settings/__init__.py +0 -0
  288. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
  289. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
  290. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/__init__.py +0 -0
  291. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/motor_selection.py +0 -0
  292. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
  293. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
  294. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
  295. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
  296. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
  297. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/settings/__init__.py +0 -0
  298. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
  299. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
  300. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/__init__.py +0 -0
  301. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py +0 -0
  302. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/plot_base.py +0 -0
  303. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/roi/__init__.py +0 -0
  304. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
  305. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/__init__.py +0 -0
  306. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
  307. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
  308. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
  309. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
  310. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
  311. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/settings/__init__.py +0 -0
  312. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
  313. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
  314. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
  315. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/setting_menus/__init__.py +0 -0
  316. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
  317. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
  318. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
  319. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/toolbar_bundles/__init__.py +0 -0
  320. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/toolbar_bundles/mouse_interactions.py +0 -0
  321. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/toolbar_bundles/plot_export.py +0 -0
  322. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/toolbar_bundles/roi_bundle.py +0 -0
  323. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/toolbar_bundles/save_state.py +0 -0
  324. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
  325. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
  326. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
  327. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/settings/__init__.py +0 -0
  328. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/__init__.py +0 -0
  329. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
  330. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
  331. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/utils/__init__.py +0 -0
  332. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
  333. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
  334. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
  335. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/__init__.py +0 -0
  336. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  337. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  338. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  339. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  340. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
  341. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  342. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  343. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  344. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  345. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  346. {bec_widgets-2.16.1/bec_widgets/widgets/services → bec_widgets-2.17.0/bec_widgets/widgets/progress/scan_progressbar}/__init__.py +0 -0
  347. {bec_widgets-2.16.1/bec_widgets/widgets/services/bec_queue → bec_widgets-2.17.0/bec_widgets/widgets/services}/__init__.py +0 -0
  348. {bec_widgets-2.16.1/bec_widgets/widgets/services/bec_status_box → bec_widgets-2.17.0/bec_widgets/widgets/services/bec_queue}/__init__.py +0 -0
  349. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  350. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  351. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  352. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  353. {bec_widgets-2.16.1/bec_widgets/widgets/services/device_browser → bec_widgets-2.17.0/bec_widgets/widgets/services/bec_status_box}/__init__.py +0 -0
  354. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
  355. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  356. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  357. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  358. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  359. {bec_widgets-2.16.1/bec_widgets/widgets/utility → bec_widgets-2.17.0/bec_widgets/widgets/services/device_browser}/__init__.py +0 -0
  360. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
  361. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  362. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  363. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  364. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  365. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_item/device_config_dialog.py +0 -0
  366. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_item/device_config_form.py +0 -0
  367. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
  368. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  369. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/services/device_browser/util.py +0 -0
  370. {bec_widgets-2.16.1/bec_widgets/widgets/utility/spinbox → bec_widgets-2.17.0/bec_widgets/widgets/utility}/__init__.py +0 -0
  371. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
  372. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
  373. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
  374. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
  375. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
  376. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
  377. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/signal_label/register_signal_label.py +0 -0
  378. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/signal_label/signal_label.py +0 -0
  379. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/signal_label/signal_label.pyproject +0 -0
  380. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/signal_label/signal_label_plugin.py +0 -0
  381. {bec_widgets-2.16.1/bec_widgets/widgets/utility/spinner → bec_widgets-2.17.0/bec_widgets/widgets/utility/spinbox}/__init__.py +0 -0
  382. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
  383. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
  384. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
  385. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
  386. {bec_widgets-2.16.1/bec_widgets/widgets/utility/toggle → bec_widgets-2.17.0/bec_widgets/widgets/utility/spinner}/__init__.py +0 -0
  387. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  388. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  389. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  390. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  391. {bec_widgets-2.16.1/bec_widgets/widgets/utility/visual → bec_widgets-2.17.0/bec_widgets/widgets/utility/toggle}/__init__.py +0 -0
  392. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  393. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
  394. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  395. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  396. {bec_widgets-2.16.1/bec_widgets/widgets/utility/visual/color_button → bec_widgets-2.17.0/bec_widgets/widgets/utility/visual}/__init__.py +0 -0
  397. {bec_widgets-2.16.1/bec_widgets/widgets/utility/visual/color_button_native → bec_widgets-2.17.0/bec_widgets/widgets/utility/visual/color_button}/__init__.py +0 -0
  398. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
  399. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
  400. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
  401. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
  402. {bec_widgets-2.16.1/bec_widgets/widgets/utility/visual/colormap_selector → bec_widgets-2.17.0/bec_widgets/widgets/utility/visual/color_button_native}/__init__.py +0 -0
  403. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +0 -0
  404. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
  405. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
  406. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
  407. {bec_widgets-2.16.1/bec_widgets/widgets/utility/visual/colormap_widget → bec_widgets-2.17.0/bec_widgets/widgets/utility/visual/colormap_selector}/__init__.py +0 -0
  408. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  409. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  410. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  411. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  412. {bec_widgets-2.16.1/bec_widgets/widgets/utility/visual/dark_mode_button → bec_widgets-2.17.0/bec_widgets/widgets/utility/visual/colormap_widget}/__init__.py +0 -0
  413. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  414. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  415. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  416. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
  417. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  418. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  419. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
  420. {bec_widgets-2.16.1 → bec_widgets-2.17.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,77 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v2.17.0 (2025-06-22)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **bec_progressbar**: Layout and sizing adjustments
9
+ ([`b02c870`](https://github.com/bec-project/bec_widgets/commit/b02c870dbfecb4bc6921ec4c915dac0e67beb9b4))
10
+
11
+ - **launch_window**: Number of remaining connections increase to 2 to include the ScanProgressBar
12
+ ([`3bbb8da`](https://github.com/bec-project/bec_widgets/commit/3bbb8daa24348613f62bde667a446d37dcec8fb0))
13
+
14
+ - **main_window**: Labels and sizing of scan progress adopted
15
+ ([`aca6efb`](https://github.com/bec-project/bec_widgets/commit/aca6efb567528eb3c68521a59b4f9903a5616c6f))
16
+
17
+ - **scan_progressbar**: Cleanup adjusted
18
+ ([`e8ae972`](https://github.com/bec-project/bec_widgets/commit/e8ae9725fa86b7db52a147ca5a2acc62fa2ccf43))
19
+
20
+ - **scan_progressbar**: Mapping of bec progress states to the progressbar enums
21
+ ([`88b42e4`](https://github.com/bec-project/bec_widgets/commit/88b42e49e30a0aa0edc2de4d970408f4be5bde6b))
22
+
23
+ ### Build System
24
+
25
+ - Update min dependency of bec to 3.42.4
26
+ ([`a4274ff`](https://github.com/bec-project/bec_widgets/commit/a4274ff8cd9f3e73a61b2eaf902c172c028d21b0))
27
+
28
+ ### Features
29
+
30
+ - **main_window**: Added scan progress bar to BECMainWindow status bar
31
+ ([`497e394`](https://github.com/bec-project/bec_widgets/commit/497e394deb5cfe36c8fc4f769fef26f109fd1c1f))
32
+
33
+ - **main_window**: Timer to show hide scan progress when it is relevant only
34
+ ([`9ff1706`](https://github.com/bec-project/bec_widgets/commit/9ff170660edd9e03f99eccee60b5e20fc1cf5a8d))
35
+
36
+ - **progressbar**: Added padding as designer property
37
+ ([`a451625`](https://github.com/bec-project/bec_widgets/commit/a451625a5ab804ca8259f9c9f83c4f9ebbea4a5b))
38
+
39
+ - **progressbar**: State setting and dynamic corner radius
40
+ ([`d3a9e09`](https://github.com/bec-project/bec_widgets/commit/d3a9e0903a263d735ecab3a2ad9319c9d5e86092))
41
+
42
+ - **scan_progressbar**: Added oneline design for compact applications
43
+ ([`d5ca7b8`](https://github.com/bec-project/bec_widgets/commit/d5ca7b84337cf60aa66f961d357ae66994f53c7a))
44
+
45
+ - **scan_progressbar**: Added progressbar with hooks to scan progress and device progress
46
+ ([`c4b8538`](https://github.com/bec-project/bec_widgets/commit/c4b85381a41e4742567680864668ee83d498b1d1))
47
+
48
+ ### Refactoring
49
+
50
+ - **progressbar**: Change slot / property to safeslot / safeproperty
51
+ ([`92d0ffe`](https://github.com/bec-project/bec_widgets/commit/92d0ffee65babc718fafd60131d0a4f291e5ca2b))
52
+
53
+ ### Testing
54
+
55
+ - **scan progress**: Add test for queue update logic
56
+ ([`b2a46e2`](https://github.com/bec-project/bec_widgets/commit/b2a46e284d45e97dd9853d1a3c8e95de7e530267))
57
+
58
+ - **scan_progress**: Tests extended
59
+ ([`6c04eac`](https://github.com/bec-project/bec_widgets/commit/6c04eac18c887526b333f58fc1118c3b4029abd8))
60
+
61
+
62
+ ## v2.16.2 (2025-06-20)
63
+
64
+ ### Bug Fixes
65
+
66
+ - **waveform**: Asyncsignal are handled with the same update mechanism as async readback
67
+ ([`a3ffcef`](https://github.com/bec-project/bec_widgets/commit/a3ffcefe8085fa1a88d679f8ef6adfdff786492e))
68
+
69
+ ### Testing
70
+
71
+ - **utils**: Dmmock can fetch get_bec_signals method
72
+ ([`3146d98`](https://github.com/bec-project/bec_widgets/commit/3146d98c572ff2bb8ab77f71b75d9612e364ffe0))
73
+
74
+
4
75
  ## v2.16.1 (2025-06-20)
5
76
 
6
77
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec_widgets
3
- Version: 2.16.1
3
+ Version: 2.17.0
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
@@ -9,8 +9,8 @@ Classifier: Development Status :: 3 - Alpha
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Classifier: Topic :: Scientific/Engineering
11
11
  Requires-Python: >=3.10
12
- Requires-Dist: bec-ipython-client<=4.0,>=3.38
13
- Requires-Dist: bec-lib<=4.0,>=3.38
12
+ Requires-Dist: bec-ipython-client<=4.0,>=3.42.4
13
+ Requires-Dist: bec-lib<=4.0,>=3.42.4
14
14
  Requires-Dist: bec-qthemes>=0.7,~=0.7
15
15
  Requires-Dist: black~=25.0
16
16
  Requires-Dist: isort>=5.13.2,~=5.13
@@ -542,7 +542,7 @@ class LaunchWindow(BECMainWindow):
542
542
  remaining_connections = [
543
543
  connection for connection in connections.values() if connection.parent_id != self.gui_id
544
544
  ]
545
- return len(remaining_connections) <= 1
545
+ return len(remaining_connections) <= 2
546
546
 
547
547
  def _turn_off_the_lights(self, connections: dict):
548
548
  """
@@ -474,6 +474,20 @@ class BECProgressBar(RPCBase):
474
474
  >>> progressbar.label_template = "$value / $percentage %"
475
475
  """
476
476
 
477
+ @property
478
+ @rpc_call
479
+ def state(self):
480
+ """
481
+ None
482
+ """
483
+
484
+ @state.setter
485
+ @rpc_call
486
+ def state(self):
487
+ """
488
+ None
489
+ """
490
+
477
491
  @rpc_call
478
492
  def _get_label(self) -> str:
479
493
  """
@@ -3245,6 +3259,16 @@ class ScanControl(RPCBase):
3245
3259
  """
3246
3260
 
3247
3261
 
3262
+ class ScanProgressBar(RPCBase):
3263
+ """Widget to display a progress bar that is hooked up to the scan progress of a scan."""
3264
+
3265
+ @rpc_call
3266
+ def remove(self):
3267
+ """
3268
+ Cleanup the BECConnector
3269
+ """
3270
+
3271
+
3248
3272
  class ScatterCurve(RPCBase):
3249
3273
  """Scatter curve item for the scatter waveform widget."""
3250
3274
 
@@ -210,6 +210,39 @@ class DMMock:
210
210
  for device in devices:
211
211
  self.devices[device.name] = device
212
212
 
213
+ def get_bec_signals(self, signal_class_name: str):
214
+ """
215
+ Emulate DeviceManager.get_bec_signals for unit-tests.
216
+
217
+ For “AsyncSignal” we list every device whose readout_priority is
218
+ ReadoutPriority.ASYNC and build a minimal tuple
219
+ (device_name, signal_name, signal_info_dict) that matches the real
220
+ API shape used by Waveform._check_async_signal_found.
221
+ """
222
+ signals: list[tuple[str, str, dict]] = []
223
+ if signal_class_name != "AsyncSignal":
224
+ return signals
225
+
226
+ for device in self.devices.values():
227
+ if getattr(device, "readout_priority", None) == ReadoutPriority.ASYNC:
228
+ device_name = device.name
229
+ signal_name = device.name # primary signal in our mocks
230
+ signal_info = {
231
+ "component_name": signal_name,
232
+ "obj_name": signal_name,
233
+ "kind_str": "hinted",
234
+ "signal_class": signal_class_name,
235
+ "metadata": {
236
+ "connected": True,
237
+ "precision": None,
238
+ "read_access": True,
239
+ "timestamp": 0.0,
240
+ "write_access": True,
241
+ },
242
+ }
243
+ signals.append((device_name, signal_name, signal_info))
244
+ return signals
245
+
213
246
 
214
247
  DEVICES = [
215
248
  FakePositioner("samx", limits=[-10, 10], read_value=2.0),
@@ -1,9 +1,28 @@
1
+ from __future__ import annotations
2
+
1
3
  import os
2
4
 
3
5
  from bec_lib.endpoints import MessageEndpoints
4
- from qtpy.QtCore import QEvent, QSize, Qt, QTimer
6
+ from qtpy.QtCore import (
7
+ QAbstractAnimation,
8
+ QEasingCurve,
9
+ QEvent,
10
+ QPropertyAnimation,
11
+ QSize,
12
+ Qt,
13
+ QTimer,
14
+ )
5
15
  from qtpy.QtGui import QAction, QActionGroup, QIcon
6
- from qtpy.QtWidgets import QApplication, QFrame, QLabel, QMainWindow, QStyle, QVBoxLayout, QWidget
16
+ from qtpy.QtWidgets import (
17
+ QApplication,
18
+ QFrame,
19
+ QHBoxLayout,
20
+ QLabel,
21
+ QMainWindow,
22
+ QStyle,
23
+ QVBoxLayout,
24
+ QWidget,
25
+ )
7
26
 
8
27
  import bec_widgets
9
28
  from bec_widgets.utils import UILoader
@@ -13,6 +32,7 @@ from bec_widgets.utils.error_popups import SafeSlot
13
32
  from bec_widgets.utils.widget_io import WidgetHierarchy
14
33
  from bec_widgets.widgets.containers.main_window.addons.scroll_label import ScrollLabel
15
34
  from bec_widgets.widgets.containers.main_window.addons.web_links import BECWebLinksMixin
35
+ from bec_widgets.widgets.progress.scan_progressbar.scan_progressbar import ScanProgressBar
16
36
 
17
37
  MODULE_PATH = os.path.dirname(bec_widgets.__file__)
18
38
 
@@ -20,6 +40,8 @@ MODULE_PATH = os.path.dirname(bec_widgets.__file__)
20
40
  class BECMainWindow(BECWidget, QMainWindow):
21
41
  RPC = False
22
42
  PLUGIN = False
43
+ SCAN_PROGRESS_WIDTH = 100 # px
44
+ STATUS_BAR_WIDGETS_EXPIRE_TIME = 60_000 # milliseconds
23
45
 
24
46
  def __init__(
25
47
  self,
@@ -33,6 +55,7 @@ class BECMainWindow(BECWidget, QMainWindow):
33
55
  super().__init__(parent=parent, gui_id=gui_id, **kwargs)
34
56
 
35
57
  self.app = QApplication.instance()
58
+ self.status_bar = self.statusBar()
36
59
  self.setWindowTitle(window_title)
37
60
  self._init_ui()
38
61
  self._connect_to_theme_change()
@@ -61,14 +84,13 @@ class BECMainWindow(BECWidget, QMainWindow):
61
84
  """
62
85
  Prepare the BEC specific widgets in the status bar.
63
86
  """
64
- status_bar = self.statusBar()
65
87
 
66
88
  # Left: App‑ID label
67
89
  self._app_id_label = QLabel()
68
90
  self._app_id_label.setAlignment(
69
91
  Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignVCenter
70
92
  )
71
- status_bar.addWidget(self._app_id_label)
93
+ self.status_bar.addWidget(self._app_id_label)
72
94
 
73
95
  # Add a separator after the app ID label
74
96
  self._add_separator()
@@ -78,16 +100,100 @@ class BECMainWindow(BECWidget, QMainWindow):
78
100
  self._client_info_label.setAlignment(
79
101
  Qt.AlignmentFlag.AlignHCenter | Qt.AlignmentFlag.AlignVCenter
80
102
  )
81
- status_bar.addWidget(self._client_info_label, 1)
103
+ self.status_bar.addWidget(self._client_info_label, 1)
82
104
 
83
105
  # Timer to automatically clear client messages once they expire
84
106
  self._client_info_expire_timer = QTimer(self)
85
107
  self._client_info_expire_timer.setSingleShot(True)
86
108
  self._client_info_expire_timer.timeout.connect(lambda: self._client_info_label.setText(""))
87
109
 
88
- def _add_separator(self):
110
+ # Add scan_progress bar with display logic
111
+ self._add_scan_progress_bar()
112
+
113
+ ################################################################################
114
+ # Progress‑bar helpers
115
+ def _add_scan_progress_bar(self):
116
+
117
+ # --- Progress bar -------------------------------------------------
118
+ # Scan progress bar minimalistic design setup
119
+ self._scan_progress_bar = ScanProgressBar(self, one_line_design=True)
120
+ self._scan_progress_bar.show_elapsed_time = False
121
+ self._scan_progress_bar.show_remaining_time = False
122
+ self._scan_progress_bar.show_source_label = False
123
+ self._scan_progress_bar.progressbar.label_template = ""
124
+ self._scan_progress_bar.progressbar.setFixedHeight(8)
125
+ self._scan_progress_bar.progressbar.setFixedWidth(80)
126
+
127
+ # Bundle the progress bar with a separator
128
+ separator = self._add_separator(separate_object=True)
129
+ self._scan_progress_bar_with_separator = QWidget()
130
+ self._scan_progress_bar_with_separator.layout = QHBoxLayout(
131
+ self._scan_progress_bar_with_separator
132
+ )
133
+ self._scan_progress_bar_with_separator.layout.setContentsMargins(0, 0, 0, 0)
134
+ self._scan_progress_bar_with_separator.layout.setSpacing(0)
135
+ self._scan_progress_bar_with_separator.layout.addWidget(separator)
136
+ self._scan_progress_bar_with_separator.layout.addWidget(self._scan_progress_bar)
137
+
138
+ # Set Size
139
+ self._scan_progress_bar_target_width = self.SCAN_PROGRESS_WIDTH
140
+ self._scan_progress_bar_with_separator.setMaximumWidth(self._scan_progress_bar_target_width)
141
+
142
+ self.status_bar.addWidget(self._scan_progress_bar_with_separator)
143
+
144
+ # Visibility logic
145
+ self._scan_progress_bar_with_separator.hide()
146
+ self._scan_progress_bar_with_separator.setMaximumWidth(0)
147
+
148
+ # Timer for hiding logic
149
+ self._scan_progress_hide_timer = QTimer(self)
150
+ self._scan_progress_hide_timer.setSingleShot(True)
151
+ self._scan_progress_hide_timer.setInterval(self.STATUS_BAR_WIDGETS_EXPIRE_TIME)
152
+ self._scan_progress_hide_timer.timeout.connect(self._animate_hide_scan_progress_bar)
153
+
154
+ # Show / hide behaviour
155
+ self._scan_progress_bar.progress_started.connect(self._show_scan_progress_bar)
156
+ self._scan_progress_bar.progress_finished.connect(self._delay_hide_scan_progress_bar)
157
+
158
+ def _show_scan_progress_bar(self):
159
+ if self._scan_progress_hide_timer.isActive():
160
+ self._scan_progress_hide_timer.stop()
161
+ if self._scan_progress_bar_with_separator.isVisible():
162
+ return
163
+
164
+ # Make visible and reset width
165
+ self._scan_progress_bar_with_separator.show()
166
+ self._scan_progress_bar_with_separator.setMaximumWidth(0)
167
+
168
+ self._show_container_anim = QPropertyAnimation(
169
+ self._scan_progress_bar_with_separator, b"maximumWidth", self
170
+ )
171
+ self._show_container_anim.setDuration(300)
172
+ self._show_container_anim.setStartValue(0)
173
+ self._show_container_anim.setEndValue(self._scan_progress_bar_target_width)
174
+ self._show_container_anim.setEasingCurve(QEasingCurve.OutCubic)
175
+ self._show_container_anim.start()
176
+
177
+ def _delay_hide_scan_progress_bar(self):
178
+ """Start the countdown to hide the scan progress bar."""
179
+ if hasattr(self, "_scan_progress_hide_timer"):
180
+ self._scan_progress_hide_timer.start()
181
+
182
+ def _animate_hide_scan_progress_bar(self):
183
+ """Shrink container to the right, then hide."""
184
+ self._hide_container_anim = QPropertyAnimation(
185
+ self._scan_progress_bar_with_separator, b"maximumWidth", self
186
+ )
187
+ self._hide_container_anim.setDuration(300)
188
+ self._hide_container_anim.setStartValue(self._scan_progress_bar_with_separator.width())
189
+ self._hide_container_anim.setEndValue(0)
190
+ self._hide_container_anim.setEasingCurve(QEasingCurve.InCubic)
191
+ self._hide_container_anim.finished.connect(self._scan_progress_bar_with_separator.hide)
192
+ self._hide_container_anim.start()
193
+
194
+ def _add_separator(self, separate_object: bool = False) -> QWidget | None:
89
195
  """
90
- Add a vertically centred separator to the status bar.
196
+ Add a vertically centred separator to the status bar or just return it as a separate object.
91
197
  """
92
198
  status_bar = self.statusBar()
93
199
 
@@ -106,6 +212,8 @@ class BECMainWindow(BECWidget, QMainWindow):
106
212
  vbox.addStretch()
107
213
  wrapper.setFixedWidth(line.sizeHint().width())
108
214
 
215
+ if separate_object:
216
+ return wrapper
109
217
  status_bar.addWidget(wrapper)
110
218
 
111
219
  def _init_bec_icon(self):
@@ -279,10 +387,16 @@ class BECMainWindow(BECWidget, QMainWindow):
279
387
  child.close()
280
388
  child.deleteLater()
281
389
 
390
+ # Timer cleanup
282
391
  if hasattr(self, "_client_info_expire_timer") and self._client_info_expire_timer.isActive():
283
392
  self._client_info_expire_timer.stop()
393
+ if hasattr(self, "_scan_progress_hide_timer") and self._scan_progress_hide_timer.isActive():
394
+ self._scan_progress_hide_timer.stop()
395
+
284
396
  # Status bar widgets cleanup
285
397
  self._client_info_label.cleanup()
398
+ self._scan_progress_bar.close()
399
+ self._scan_progress_bar.deleteLater()
286
400
  super().cleanup()
287
401
 
288
402
 
@@ -296,4 +410,5 @@ if __name__ == "__main__":
296
410
  app = QApplication(sys.argv)
297
411
  main_window = UILaunchWindow()
298
412
  main_window.show()
413
+ main_window.resize(800, 600)
299
414
  sys.exit(app.exec())
@@ -1246,6 +1246,23 @@ class Waveform(PlotBase):
1246
1246
 
1247
1247
  self.request_dap_update.emit()
1248
1248
 
1249
+ def _check_async_signal_found(self, name: str, signal: str) -> bool:
1250
+ """
1251
+ Check if the async signal is found in the BEC device manager.
1252
+
1253
+ Args:
1254
+ name(str): The name of the async signal.
1255
+ signal(str): The entry of the async signal.
1256
+
1257
+ Returns:
1258
+ bool: True if the async signal is found, False otherwise.
1259
+ """
1260
+ bec_async_signals = self.client.device_manager.get_bec_signals("AsyncSignal")
1261
+ for entry_name, _, entry_data in bec_async_signals:
1262
+ if entry_name == name and entry_data.get("obj_name") == signal:
1263
+ return True
1264
+ return False
1265
+
1249
1266
  def _setup_async_curve(self, curve: Curve):
1250
1267
  """
1251
1268
  Setup async curve.
@@ -1254,20 +1271,40 @@ class Waveform(PlotBase):
1254
1271
  curve(Curve): The curve to set up.
1255
1272
  """
1256
1273
  name = curve.config.signal.name
1257
- self.bec_dispatcher.disconnect_slot(
1258
- self.on_async_readback, MessageEndpoints.device_async_readback(self.old_scan_id, name)
1259
- )
1274
+ signal = curve.config.signal.entry
1275
+ async_signal_found = self._check_async_signal_found(name, signal)
1276
+
1260
1277
  try:
1261
1278
  curve.clear_data()
1262
1279
  except KeyError:
1263
1280
  logger.warning(f"Curve {name} not found in plot item.")
1264
1281
  pass
1265
- self.bec_dispatcher.connect_slot(
1266
- self.on_async_readback,
1267
- MessageEndpoints.device_async_readback(self.scan_id, name),
1268
- from_start=True,
1269
- cb_info={"scan_id": self.scan_id},
1270
- )
1282
+
1283
+ # New endpoint for async signals
1284
+ if async_signal_found:
1285
+ self.bec_dispatcher.disconnect_slot(
1286
+ self.on_async_readback,
1287
+ MessageEndpoints.device_async_signal(self.old_scan_id, name, signal),
1288
+ )
1289
+ self.bec_dispatcher.connect_slot(
1290
+ self.on_async_readback,
1291
+ MessageEndpoints.device_async_signal(self.scan_id, name, signal),
1292
+ from_start=True,
1293
+ cb_info={"scan_id": self.scan_id},
1294
+ )
1295
+
1296
+ # old endpoint
1297
+ else:
1298
+ self.bec_dispatcher.disconnect_slot(
1299
+ self.on_async_readback,
1300
+ MessageEndpoints.device_async_readback(self.old_scan_id, name),
1301
+ )
1302
+ self.bec_dispatcher.connect_slot(
1303
+ self.on_async_readback,
1304
+ MessageEndpoints.device_async_readback(self.scan_id, name),
1305
+ from_start=True,
1306
+ cb_info={"scan_id": self.scan_id},
1307
+ )
1271
1308
  logger.info(f"Setup async curve {name}")
1272
1309
 
1273
1310
  @SafeSlot(dict, dict, verify_sender=True)