bec-widgets 1.15.1__tar.gz → 1.16.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 (328) hide show
  1. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/CHANGELOG.md +16 -0
  2. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/PKG-INFO +1 -1
  3. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/toolbar.py +312 -24
  4. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/pyproject.toml +1 -1
  5. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.git_hooks/pre-commit +0 -0
  6. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.gitignore +0 -0
  7. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  8. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  9. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  10. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.gitlab/merge_request_templates/default.md +0 -0
  11. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.gitlab-ci.yml +0 -0
  12. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.pylintrc +0 -0
  13. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/.readthedocs.yaml +0 -0
  14. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/LICENSE +0 -0
  15. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/README.md +0 -0
  16. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/__init__.py +0 -0
  17. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/applications/__init__.py +0 -0
  18. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/applications/alignment/__init__.py +0 -0
  19. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
  20. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
  21. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
  22. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/applications/bec_app.py +0 -0
  23. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  24. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  25. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  26. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/__init__.py +0 -0
  27. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/auto_updates.py +0 -0
  28. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/client.py +0 -0
  29. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/client_utils.py +0 -0
  30. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/generate_cli.py +0 -0
  31. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/rpc/__init__.py +0 -0
  32. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/rpc/rpc_base.py +0 -0
  33. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/rpc/rpc_register.py +0 -0
  34. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
  35. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/cli/server.py +0 -0
  36. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/__init__.py +0 -0
  37. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  38. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  39. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  40. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  41. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  42. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  43. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  44. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  45. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  46. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  47. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  48. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  49. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  50. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/__init__.py +0 -0
  51. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/collapsible_panel_manager.py +0 -0
  52. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/compact_popup.py +0 -0
  53. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  54. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/palette_viewer.py +0 -0
  55. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  56. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/round_frame.py +0 -0
  57. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  58. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/qt_utils/side_panel.py +0 -0
  59. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/tests/__init__.py +0 -0
  60. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/tests/utils.py +0 -0
  61. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/__init__.py +0 -0
  62. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/bec_connector.py +0 -0
  63. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/bec_designer.py +0 -0
  64. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  65. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  66. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/bec_table.py +0 -0
  67. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/bec_widget.py +0 -0
  68. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/colors.py +0 -0
  69. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/container_utils.py +0 -0
  70. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/crosshair.py +0 -0
  71. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/entry_validator.py +0 -0
  72. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/filter_io.py +0 -0
  73. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/fps_counter.py +0 -0
  74. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  75. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/layout_manager.py +0 -0
  76. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  77. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  78. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  79. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  80. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  81. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/plugin_utils.py +0 -0
  82. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/reference_utils.py +0 -0
  83. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  84. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/thread_checker.py +0 -0
  85. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/ui_loader.py +0 -0
  86. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/validator_delegate.py +0 -0
  87. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/widget_io.py +0 -0
  88. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/widget_state_manager.py +0 -0
  89. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  90. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/__init__.py +0 -0
  91. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/__init__.py +0 -0
  92. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
  93. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
  94. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
  95. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
  96. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
  97. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
  98. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/__init__.py +0 -0
  99. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/figure.py +0 -0
  100. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/__init__.py +0 -0
  101. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.py +0 -0
  102. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.ui +0 -0
  103. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/image/__init__.py +0 -0
  104. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/image/image.py +0 -0
  105. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/image/image_item.py +0 -0
  106. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/image/image_processor.py +0 -0
  107. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py +0 -0
  108. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py +0 -0
  109. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py +0 -0
  110. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +0 -0
  111. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/plot_base.py +0 -0
  112. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/waveform/__init__.py +0 -0
  113. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py +0 -0
  114. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py +0 -0
  115. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
  116. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
  117. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
  118. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
  119. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/__init__.py +0 -0
  120. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
  121. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
  122. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  123. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  124. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  125. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  126. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
  127. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  128. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  129. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  130. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  131. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
  132. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  133. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  134. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  135. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  136. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
  137. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  138. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  139. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  140. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  141. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
  142. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
  143. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  144. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  145. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  146. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  147. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
  148. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.py +0 -0
  149. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.pyproject +0 -0
  150. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.ui +0 -0
  151. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_plugin.py +0 -0
  152. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.py +0 -0
  153. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.pyproject +0 -0
  154. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.ui +0 -0
  155. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line_plugin.py +0 -0
  156. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_box.py +0 -0
  157. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_control_line.py +0 -0
  158. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
  159. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  160. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  161. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  162. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  163. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
  164. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
  165. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
  166. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
  167. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
  168. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  169. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
  170. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  171. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
  172. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
  173. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
  174. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
  175. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
  176. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
  177. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
  178. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combobox.py +0 -0
  179. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  180. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.pyproject +0 -0
  181. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox_plugin.py +0 -0
  182. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
  183. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
  184. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
  185. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
  186. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
  187. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  188. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  189. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  190. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  191. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  192. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  193. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/__init__.py +0 -0
  194. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
  195. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  196. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  197. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  198. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  199. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
  200. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  201. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  202. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  203. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  204. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  205. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  206. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/__init__.py +0 -0
  207. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/console/__init__.py +0 -0
  208. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/console/console.py +0 -0
  209. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
  210. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
  211. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/console/register_console.py +0 -0
  212. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
  213. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  214. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
  215. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  216. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  217. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  218. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  219. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
  220. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
  221. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
  222. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
  223. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
  224. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/website/__init__.py +0 -0
  225. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  226. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/website/website.py +0 -0
  227. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  228. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  229. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/games/__init__.py +0 -0
  230. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/games/minesweeper.py +0 -0
  231. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
  232. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
  233. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
  234. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/__init__.py +0 -0
  235. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/image/__init__.py +0 -0
  236. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/image/bec_image_widget.pyproject +0 -0
  237. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py +0 -0
  238. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/image/image_widget.py +0 -0
  239. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/image/register_bec_image_widget.py +0 -0
  240. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
  241. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject +0 -0
  242. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py +0 -0
  243. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/__init__.py +0 -0
  244. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  245. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  246. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/motor_map_widget.py +0 -0
  247. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py +0 -0
  248. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
  249. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +0 -0
  250. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +0 -0
  251. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +0 -0
  252. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +0 -0
  253. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +0 -0
  254. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
  255. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject +0 -0
  256. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py +0 -0
  257. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py +0 -0
  258. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/waveform_popups/__init__.py +0 -0
  259. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  260. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  261. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  262. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  263. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  264. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/plots/waveform/waveform_widget.py +0 -0
  265. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/__init__.py +0 -0
  266. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  267. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  268. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  269. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
  270. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  271. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
  272. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  273. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  274. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  275. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  276. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  277. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/__init__.py +0 -0
  278. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
  279. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  280. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  281. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  282. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  283. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
  284. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
  285. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  286. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  287. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  288. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  289. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
  290. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
  291. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  292. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  293. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  294. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  295. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
  296. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  297. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/__init__.py +0 -0
  298. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
  299. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  300. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  301. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  302. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  303. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
  304. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  305. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
  306. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  307. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  308. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
  309. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
  310. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
  311. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
  312. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
  313. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
  314. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
  315. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  316. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  317. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  318. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  319. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
  320. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  321. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  322. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  323. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
  324. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  325. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  326. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  327. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
  328. {bec_widgets-1.15.1 → bec_widgets-1.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,22 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v1.16.0 (2025-01-14)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **e2e**: Num of elements to wait for scan fixed to steps requested in the scan
9
+ ([`0fd5dd5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0fd5dd5a264beb93690365ad8befa34cfdd296d0))
10
+
11
+ - **toolbar**: Adjusted to future plot base
12
+ ([`508abfa`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/508abfa8a5a31829bdfd5853e967f5ac668d8d8d))
13
+
14
+ ### Features
15
+
16
+ - **modular_toolbar**: Context menu and action bundles
17
+ ([`001e6fc`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/001e6fc807667187807656a55ab58e3b2f17c9ca))
18
+
19
+
4
20
  ## v1.15.1 (2025-01-13)
5
21
 
6
22
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec_widgets
3
- Version: 1.15.1
3
+ Version: 1.16.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
@@ -2,17 +2,20 @@
2
2
  from __future__ import annotations
3
3
 
4
4
  import os
5
+ import sys
5
6
  from abc import ABC, abstractmethod
6
7
  from collections import defaultdict
7
- from typing import Literal
8
+ from typing import Dict, List, Literal, Tuple
8
9
 
9
10
  from bec_qthemes._icon.material_icons import material_icon
10
11
  from qtpy.QtCore import QSize, Qt
11
12
  from qtpy.QtGui import QAction, QColor, QIcon
12
13
  from qtpy.QtWidgets import (
14
+ QApplication,
13
15
  QComboBox,
14
16
  QHBoxLayout,
15
17
  QLabel,
18
+ QMainWindow,
16
19
  QMenu,
17
20
  QSizePolicy,
18
21
  QToolBar,
@@ -31,7 +34,7 @@ class ToolBarAction(ABC):
31
34
 
32
35
  Args:
33
36
  icon_path (str, optional): The name of the icon file from `assets/toolbar_icons`. Defaults to None.
34
- tooltip (bool, optional): The tooltip for the action. Defaults to None.
37
+ tooltip (str, optional): The tooltip for the action. Defaults to None.
35
38
  checkable (bool, optional): Whether the action is checkable. Defaults to False.
36
39
  """
37
40
 
@@ -81,15 +84,18 @@ class IconAction(ToolBarAction):
81
84
  toolbar.addAction(self.action)
82
85
 
83
86
 
84
- class MaterialIconAction:
87
+ class MaterialIconAction(ToolBarAction):
85
88
  """
86
89
  Action with a Material icon for the toolbar.
87
90
 
88
91
  Args:
89
- icon_path (str, optional): The name of the Material icon. Defaults to None.
90
- tooltip (bool, optional): The tooltip for the action. Defaults to None.
92
+ icon_name (str, optional): The name of the Material icon. Defaults to None.
93
+ tooltip (str, optional): The tooltip for the action. Defaults to None.
91
94
  checkable (bool, optional): Whether the action is checkable. Defaults to False.
92
95
  filled (bool, optional): Whether the icon is filled. Defaults to False.
96
+ color (str | tuple | QColor | dict[Literal["dark", "light"], str] | None, optional): The color of the icon.
97
+ Defaults to None.
98
+ parent (QWidget or None, optional): Parent widget for the underlying QAction.
93
99
  """
94
100
 
95
101
  def __init__(
@@ -99,30 +105,42 @@ class MaterialIconAction:
99
105
  checkable: bool = False,
100
106
  filled: bool = False,
101
107
  color: str | tuple | QColor | dict[Literal["dark", "light"], str] | None = None,
108
+ parent=None,
102
109
  ):
110
+ super().__init__(icon_path=None, tooltip=tooltip, checkable=checkable)
103
111
  self.icon_name = icon_name
104
- self.tooltip = tooltip
105
- self.checkable = checkable
106
- self.action = None
107
112
  self.filled = filled
108
113
  self.color = color
109
-
110
- def add_to_toolbar(self, toolbar: QToolBar, target: QWidget):
111
- icon = self.get_icon()
112
- self.action = QAction(icon, self.tooltip, target)
113
- self.action.setCheckable(self.checkable)
114
- toolbar.addAction(self.action)
115
-
116
- def get_icon(self):
117
-
118
- icon = material_icon(
114
+ # Generate the icon
115
+ self.icon = material_icon(
119
116
  self.icon_name,
120
117
  size=(20, 20),
121
118
  convert_to_pixmap=False,
122
119
  filled=self.filled,
123
120
  color=self.color,
124
121
  )
125
- return icon
122
+ # Immediately create an QAction with the given parent
123
+ self.action = QAction(self.icon, self.tooltip, parent=parent)
124
+ self.action.setCheckable(self.checkable)
125
+
126
+ def add_to_toolbar(self, toolbar: QToolBar, target: QWidget):
127
+ """
128
+ Adds the action to the toolbar.
129
+
130
+ Args:
131
+ toolbar(QToolBar): The toolbar to add the action to.
132
+ target(QWidget): The target widget for the action.
133
+ """
134
+ toolbar.addAction(self.action)
135
+
136
+ def get_icon(self):
137
+ """
138
+ Returns the icon for the action.
139
+
140
+ Returns:
141
+ QIcon: The icon for the action.
142
+ """
143
+ return self.icon
126
144
 
127
145
 
128
146
  class DeviceSelectionAction(ToolBarAction):
@@ -132,7 +150,6 @@ class DeviceSelectionAction(ToolBarAction):
132
150
  Args:
133
151
  label (str): The label for the combobox.
134
152
  device_combobox (DeviceComboBox): The combobox for selecting the device.
135
-
136
153
  """
137
154
 
138
155
  def __init__(self, label: str, device_combobox):
@@ -160,7 +177,6 @@ class WidgetAction(ToolBarAction):
160
177
  Args:
161
178
  label (str|None): The label for the widget.
162
179
  widget (QWidget): The widget to be added to the toolbar.
163
-
164
180
  """
165
181
 
166
182
  def __init__(self, label: str | None = None, widget: QWidget = None, parent=None):
@@ -219,7 +235,6 @@ class ExpandableMenuAction(ToolBarAction):
219
235
  label (str): The label for the menu.
220
236
  actions (dict): A dictionary of actions to populate the menu.
221
237
  icon_path (str, optional): The path to the icon file. Defaults to None.
222
-
223
238
  """
224
239
 
225
240
  def __init__(self, label: str, actions: dict, icon_path: str = None):
@@ -259,6 +274,55 @@ class ExpandableMenuAction(ToolBarAction):
259
274
  toolbar.addWidget(button)
260
275
 
261
276
 
277
+ class ToolbarBundle:
278
+ """
279
+ Represents a bundle of toolbar actions, keyed by action_id.
280
+ Allows direct dictionary-like access: self.actions["some_id"] -> ToolBarAction object.
281
+ """
282
+
283
+ def __init__(self, bundle_id: str = None, actions=None):
284
+ """
285
+ Args:
286
+ bundle_id (str): Unique identifier for the bundle.
287
+ actions: Either None or a list of (action_id, ToolBarAction) tuples.
288
+ """
289
+ self.bundle_id = bundle_id
290
+ self._actions: dict[str, ToolBarAction] = {}
291
+
292
+ # If you passed in a list of tuples, load them into the dictionary
293
+ if actions is not None:
294
+ for action_id, action in actions:
295
+ self._actions[action_id] = action
296
+
297
+ def add_action(self, action_id: str, action: ToolBarAction):
298
+ """
299
+ Adds or replaces an action in the bundle.
300
+
301
+ Args:
302
+ action_id (str): Unique identifier for the action.
303
+ action (ToolBarAction): The action to add.
304
+ """
305
+ self._actions[action_id] = action
306
+
307
+ def remove_action(self, action_id: str):
308
+ """
309
+ Removes an action from the bundle by ID.
310
+ Ignores if not present.
311
+
312
+ Args:
313
+ action_id (str): Unique identifier for the action to remove.
314
+ """
315
+ self._actions.pop(action_id, None)
316
+
317
+ @property
318
+ def actions(self) -> dict[str, ToolBarAction]:
319
+ """
320
+ Return the internal dictionary of actions so that you can do
321
+ bundle.actions["drag_mode"] -> ToolBarAction instance.
322
+ """
323
+ return self._actions
324
+
325
+
262
326
  class ModularToolBar(QToolBar):
263
327
  """Modular toolbar with optional automatic initialization.
264
328
 
@@ -287,10 +351,14 @@ class ModularToolBar(QToolBar):
287
351
  # Set the initial orientation
288
352
  self.set_orientation(orientation)
289
353
 
354
+ # Initialize bundles
355
+ self.bundles = {}
356
+ self.toolbar_items = []
357
+
290
358
  if actions is not None and target_widget is not None:
291
359
  self.populate_toolbar(actions, target_widget)
292
360
 
293
- def populate_toolbar(self, actions: dict, target_widget):
361
+ def populate_toolbar(self, actions: dict, target_widget: QWidget):
294
362
  """Populates the toolbar with a set of actions.
295
363
 
296
364
  Args:
@@ -298,9 +366,12 @@ class ModularToolBar(QToolBar):
298
366
  target_widget (QWidget): The widget that the actions will target.
299
367
  """
300
368
  self.clear()
369
+ self.toolbar_items.clear() # Reset the order tracking
301
370
  for action_id, action in actions.items():
302
371
  action.add_to_toolbar(self, target_widget)
303
372
  self.widgets[action_id] = action
373
+ self.toolbar_items.append(("action", action_id))
374
+ self.update_separators() # Ensure separators are updated after populating
304
375
 
305
376
  def set_background_color(self, color: str = "rgba(0, 0, 0, 0)"):
306
377
  """
@@ -345,7 +416,7 @@ class ModularToolBar(QToolBar):
345
416
 
346
417
  def add_action(self, action_id: str, action: ToolBarAction, target_widget: QWidget):
347
418
  """
348
- Adds a new action to the toolbar dynamically.
419
+ Adds a new standalone action to the toolbar dynamically.
349
420
 
350
421
  Args:
351
422
  action_id (str): Unique identifier for the action.
@@ -356,6 +427,8 @@ class ModularToolBar(QToolBar):
356
427
  raise ValueError(f"Action with ID '{action_id}' already exists.")
357
428
  action.add_to_toolbar(self, target_widget)
358
429
  self.widgets[action_id] = action
430
+ self.toolbar_items.append(("action", action_id))
431
+ self.update_separators() # Update separators after adding the action
359
432
 
360
433
  def hide_action(self, action_id: str):
361
434
  """
@@ -369,6 +442,7 @@ class ModularToolBar(QToolBar):
369
442
  action = self.widgets[action_id]
370
443
  if hasattr(action, "action") and isinstance(action.action, QAction):
371
444
  action.action.setVisible(False)
445
+ self.update_separators() # Update separators after hiding the action
372
446
 
373
447
  def show_action(self, action_id: str):
374
448
  """
@@ -382,3 +456,217 @@ class ModularToolBar(QToolBar):
382
456
  action = self.widgets[action_id]
383
457
  if hasattr(action, "action") and isinstance(action.action, QAction):
384
458
  action.action.setVisible(True)
459
+ self.update_separators() # Update separators after showing the action
460
+
461
+ def add_bundle(self, bundle: ToolbarBundle, target_widget: QWidget):
462
+ """
463
+ Adds a bundle of actions to the toolbar, separated by a separator.
464
+
465
+ Args:
466
+ bundle (ToolbarBundle): The bundle to add.
467
+ target_widget (QWidget): The target widget for the actions.
468
+ """
469
+ if bundle.bundle_id in self.bundles:
470
+ raise ValueError(f"ToolbarBundle with ID '{bundle.bundle_id}' already exists.")
471
+
472
+ # Add a separator before the bundle (but not to first one)
473
+ if self.toolbar_items:
474
+ sep = SeparatorAction()
475
+ sep.add_to_toolbar(self, target_widget)
476
+ self.toolbar_items.append(("separator", None))
477
+
478
+ # Add each action in the bundle
479
+ for action_id, action_obj in bundle.actions.items():
480
+ action_obj.add_to_toolbar(self, target_widget)
481
+ self.widgets[action_id] = action_obj
482
+
483
+ # Register the bundle
484
+ self.bundles[bundle.bundle_id] = list(bundle.actions.keys())
485
+ self.toolbar_items.append(("bundle", bundle.bundle_id))
486
+
487
+ self.update_separators() # Update separators after adding the bundle
488
+
489
+ def contextMenuEvent(self, event):
490
+ """
491
+ Overrides the context menu event to show a list of toolbar actions with checkboxes and icons, including separators.
492
+
493
+ Args:
494
+ event(QContextMenuEvent): The context menu event.
495
+ """
496
+ menu = QMenu(self)
497
+
498
+ # Iterate through the toolbar items in order
499
+ for item_type, identifier in self.toolbar_items:
500
+ if item_type == "separator":
501
+ menu.addSeparator()
502
+ elif item_type == "bundle":
503
+ self.handle_bundle_context_menu(menu, identifier)
504
+ elif item_type == "action":
505
+ self.handle_action_context_menu(menu, identifier)
506
+
507
+ # Connect the triggered signal after all actions are added
508
+ menu.triggered.connect(self.handle_menu_triggered)
509
+ menu.exec_(event.globalPos())
510
+
511
+ def handle_bundle_context_menu(self, menu: QMenu, bundle_id: str):
512
+ """
513
+ Adds a set of bundle actions to the context menu.
514
+
515
+ Args:
516
+ menu (QMenu): The context menu to which the actions are added.
517
+ bundle_id (str): The identifier for the bundle.
518
+ """
519
+ action_ids = self.bundles.get(bundle_id, [])
520
+ for act_id in action_ids:
521
+ toolbar_action = self.widgets.get(act_id)
522
+ if not isinstance(toolbar_action, ToolBarAction) or not hasattr(
523
+ toolbar_action, "action"
524
+ ):
525
+ continue
526
+ qaction = toolbar_action.action
527
+ if not isinstance(qaction, QAction):
528
+ continue
529
+ display_name = qaction.text() or toolbar_action.tooltip or act_id
530
+ menu_action = QAction(display_name, self)
531
+ menu_action.setCheckable(True)
532
+ menu_action.setChecked(qaction.isVisible())
533
+ menu_action.setData(act_id) # Store the action_id
534
+
535
+ # Set the icon if available
536
+ if qaction.icon() and not qaction.icon().isNull():
537
+ menu_action.setIcon(qaction.icon())
538
+
539
+ menu.addAction(menu_action)
540
+
541
+ def handle_action_context_menu(self, menu: QMenu, action_id: str):
542
+ """
543
+ Adds a single toolbar action to the context menu.
544
+
545
+ Args:
546
+ menu (QMenu): The context menu to which the action is added.
547
+ action_id (str): Unique identifier for the action.
548
+ """
549
+ toolbar_action = self.widgets.get(action_id)
550
+ if not isinstance(toolbar_action, ToolBarAction) or not hasattr(toolbar_action, "action"):
551
+ return
552
+ qaction = toolbar_action.action
553
+ if not isinstance(qaction, QAction):
554
+ return
555
+ display_name = qaction.text() or toolbar_action.tooltip or action_id
556
+ menu_action = QAction(display_name, self)
557
+ menu_action.setCheckable(True)
558
+ menu_action.setChecked(qaction.isVisible())
559
+ menu_action.setData(action_id) # Store the action_id
560
+
561
+ # Set the icon if available
562
+ if qaction.icon() and not qaction.icon().isNull():
563
+ menu_action.setIcon(qaction.icon())
564
+
565
+ menu.addAction(menu_action)
566
+
567
+ def handle_menu_triggered(self, action):
568
+ """Handles the toggling of toolbar actions from the context menu."""
569
+ action_id = action.data()
570
+ if action_id:
571
+ self.toggle_action_visibility(action_id, action.isChecked())
572
+
573
+ def toggle_action_visibility(self, action_id: str, visible: bool):
574
+ """
575
+ Toggles the visibility of a specific action on the toolbar.
576
+
577
+ Args:
578
+ action_id(str): Unique identifier for the action to toggle.
579
+ visible(bool): Whether the action should be visible.
580
+ """
581
+ if action_id not in self.widgets:
582
+ return
583
+
584
+ tool_action = self.widgets[action_id]
585
+ if hasattr(tool_action, "action") and isinstance(tool_action.action, QAction):
586
+ tool_action.action.setVisible(visible)
587
+ self.update_separators()
588
+
589
+ def update_separators(self):
590
+ """
591
+ Hide separators that are adjacent to another separator or have no actions next to them.
592
+ """
593
+ toolbar_actions = self.actions()
594
+
595
+ for i, action in enumerate(toolbar_actions):
596
+ if not action.isSeparator():
597
+ continue
598
+ # Find the previous visible action
599
+ prev_visible = None
600
+ for j in range(i - 1, -1, -1):
601
+ if toolbar_actions[j].isVisible():
602
+ prev_visible = toolbar_actions[j]
603
+ break
604
+
605
+ # Find the next visible action
606
+ next_visible = None
607
+ for j in range(i + 1, len(toolbar_actions)):
608
+ if toolbar_actions[j].isVisible():
609
+ next_visible = toolbar_actions[j]
610
+ break
611
+
612
+ # Determine if the separator should be hidden
613
+ # Hide if both previous and next visible actions are separators or non-existent
614
+ if (prev_visible is None or prev_visible.isSeparator()) and (
615
+ next_visible is None or next_visible.isSeparator()
616
+ ):
617
+ action.setVisible(False)
618
+ else:
619
+ action.setVisible(True)
620
+
621
+
622
+ class MainWindow(QMainWindow): # pragma: no cover
623
+ def __init__(self):
624
+ super().__init__()
625
+ self.setWindowTitle("Toolbar / ToolbarBundle Demo")
626
+
627
+ self.central_widget = QWidget()
628
+ self.setCentralWidget(self.central_widget)
629
+
630
+ # Create a modular toolbar
631
+ self.toolbar = ModularToolBar(parent=self, target_widget=self)
632
+ self.addToolBar(self.toolbar)
633
+
634
+ # Example: Add a single bundle
635
+ home_action = MaterialIconAction(
636
+ icon_name="home", tooltip="Home", checkable=True, parent=self
637
+ )
638
+ settings_action = MaterialIconAction(
639
+ icon_name="settings", tooltip="Settings", checkable=True, parent=self
640
+ )
641
+ profile_action = MaterialIconAction(
642
+ icon_name="person", tooltip="Profile", checkable=True, parent=self
643
+ )
644
+ main_actions_bundle = ToolbarBundle(
645
+ bundle_id="main_actions",
646
+ actions=[
647
+ ("home_action", home_action),
648
+ ("settings_action", settings_action),
649
+ ("profile_action", profile_action),
650
+ ],
651
+ )
652
+ self.toolbar.add_bundle(main_actions_bundle, target_widget=self)
653
+
654
+ # Another bundle
655
+ search_action = MaterialIconAction(
656
+ icon_name="search", tooltip="Search", checkable=True, parent=self
657
+ )
658
+ help_action = MaterialIconAction(
659
+ icon_name="help", tooltip="Help", checkable=True, parent=self
660
+ )
661
+ second_bundle = ToolbarBundle(
662
+ bundle_id="secondary_actions",
663
+ actions=[("search_action", search_action), ("help_action", help_action)],
664
+ )
665
+ self.toolbar.add_bundle(second_bundle, target_widget=self)
666
+
667
+
668
+ if __name__ == "__main__": # pragma: no cover
669
+ app = QApplication(sys.argv)
670
+ main_window = MainWindow()
671
+ main_window.show()
672
+ sys.exit(app.exec_())
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "1.15.1"
7
+ version = "1.16.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
File without changes
File without changes
File without changes
File without changes