bec-widgets 0.99.10__tar.gz → 0.99.12__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 (242) hide show
  1. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/CHANGELOG.md +22 -16
  2. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/PKG-INFO +1 -1
  3. bec_widgets-0.99.12/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  4. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/client.py +59 -2
  5. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/general_app/general_app.py +1 -1
  6. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +2 -4
  7. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/qt_utils/toolbar.py +25 -0
  8. bec_widgets-0.99.12/bec_widgets/widgets/button_abort/abort_button.pyproject +1 -0
  9. bec_widgets-0.99.12/bec_widgets/widgets/button_abort/abort_button_plugin.py +54 -0
  10. bec_widgets-0.99.12/bec_widgets/widgets/button_abort/button_abort.py +49 -0
  11. bec_widgets-0.99.12/bec_widgets/widgets/button_abort/register_abort_button.py +15 -0
  12. bec_widgets-0.99.12/bec_widgets/widgets/button_reset/button_reset.py +42 -0
  13. bec_widgets-0.99.12/bec_widgets/widgets/button_reset/register_reset_button.py +15 -0
  14. bec_widgets-0.99.12/bec_widgets/widgets/button_reset/reset_button.pyproject +1 -0
  15. bec_widgets-0.99.12/bec_widgets/widgets/button_reset/reset_button_plugin.py +54 -0
  16. bec_widgets-0.99.12/bec_widgets/widgets/button_resume/button_resume.py +42 -0
  17. bec_widgets-0.99.12/bec_widgets/widgets/button_resume/register_resume_button.py +15 -0
  18. bec_widgets-0.99.12/bec_widgets/widgets/button_resume/resume_button.pyproject +1 -0
  19. bec_widgets-0.99.12/bec_widgets/widgets/button_resume/resume_button_plugin.py +54 -0
  20. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_box.py +2 -0
  21. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/scan_control/scan_control.py +65 -2
  22. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/stop_button/stop_button.py +10 -5
  23. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/stop_button/stop_button_plugin.py +1 -1
  24. bec_widgets-0.99.12/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  25. bec_widgets-0.99.12/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  26. bec_widgets-0.99.12/bec_widgets/widgets/website/__init__.py +0 -0
  27. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/pyproject.toml +1 -1
  28. bec_widgets-0.99.10/bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
  29. bec_widgets-0.99.10/bec_widgets/assets/app_icons/terminal_icon.png +0 -0
  30. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.git_hooks/pre-commit +0 -0
  31. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.gitignore +0 -0
  32. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.gitlab/issue_templates/bug_report_template.md +0 -0
  33. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  34. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.gitlab/issue_templates/feature_request_template.md +0 -0
  35. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.gitlab/merge_request_templates/default.md +0 -0
  36. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.gitlab-ci.yml +0 -0
  37. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.pylintrc +0 -0
  38. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/.readthedocs.yaml +0 -0
  39. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/LICENSE +0 -0
  40. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/README.md +0 -0
  41. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/__init__.py +0 -0
  42. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  43. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/assets/status_icons/error.svg +0 -0
  44. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
  45. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/assets/status_icons/refresh.svg +0 -0
  46. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/assets/status_icons/running.svg +0 -0
  47. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/assets/status_icons/warning.svg +0 -0
  48. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/__init__.py +0 -0
  49. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/auto_updates.py +0 -0
  50. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/client_utils.py +0 -0
  51. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/generate_cli.py +0 -0
  52. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/rpc_register.py +0 -0
  53. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  54. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/cli/server.py +0 -0
  55. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/__init__.py +0 -0
  56. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/general_app/__init__.py +0 -0
  57. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/general_app/general_app.ui +0 -0
  58. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/general_app/web_links.py +0 -0
  59. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  60. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  61. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  62. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  63. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  64. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  65. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  66. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  67. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/qt_utils/__init__.py +0 -0
  68. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/qt_utils/error_popups.py +0 -0
  69. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  70. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  71. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/__init__.py +0 -0
  72. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/bec_connector.py +0 -0
  73. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/bec_designer.py +0 -0
  74. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/bec_dispatcher.py +0 -0
  75. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/bec_table.py +0 -0
  76. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/bec_widget.py +0 -0
  77. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/colors.py +0 -0
  78. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/container_utils.py +0 -0
  79. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/crosshair.py +0 -0
  80. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/entry_validator.py +0 -0
  81. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  82. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/layout_manager.py +0 -0
  83. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  84. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/plugin_templates/register.template +0 -0
  85. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/plugin_utils.py +0 -0
  86. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/reference_utils.py +0 -0
  87. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/rpc_decorator.py +0 -0
  88. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/thread_checker.py +0 -0
  89. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/ui_loader.py +0 -0
  90. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/validator_delegate.py +0 -0
  91. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/widget_io.py +0 -0
  92. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/utils/yaml_dialog.py +0 -0
  93. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/__init__.py +0 -0
  94. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  95. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  96. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  97. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  98. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  99. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  100. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  101. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  102. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  103. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  104. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  105. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  106. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  107. {bec_widgets-0.99.10/bec_widgets/widgets/color_button → bec_widgets-0.99.12/bec_widgets/widgets/button_abort}/__init__.py +0 -0
  108. {bec_widgets-0.99.10/bec_widgets/widgets/colormap_selector → bec_widgets-0.99.12/bec_widgets/widgets/button_reset}/__init__.py +0 -0
  109. {bec_widgets-0.99.10/bec_widgets/widgets/dark_mode_button → bec_widgets-0.99.12/bec_widgets/widgets/button_resume}/__init__.py +0 -0
  110. {bec_widgets-0.99.10/bec_widgets/widgets/device_browser → bec_widgets-0.99.12/bec_widgets/widgets/color_button}/__init__.py +0 -0
  111. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/color_button/color_button.py +0 -0
  112. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  113. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  114. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  115. {bec_widgets-0.99.10/bec_widgets/widgets/device_combobox → bec_widgets-0.99.12/bec_widgets/widgets/colormap_selector}/__init__.py +0 -0
  116. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  117. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  118. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  119. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  120. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/console/console.py +0 -0
  121. {bec_widgets-0.99.10/bec_widgets/widgets/device_line_edit → bec_widgets-0.99.12/bec_widgets/widgets/dark_mode_button}/__init__.py +0 -0
  122. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +0 -0
  123. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject +0 -0
  124. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +0 -0
  125. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +0 -0
  126. {bec_widgets-0.99.10/bec_widgets/widgets/figure/plots → bec_widgets-0.99.12/bec_widgets/widgets/device_browser}/__init__.py +0 -0
  127. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_browser/device_browser.py +0 -0
  128. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_browser/device_browser.pyproject +0 -0
  129. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_browser/device_browser.ui +0 -0
  130. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_browser/device_browser_plugin.py +0 -0
  131. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_browser/device_item/__init__.py +0 -0
  132. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_browser/device_item/device_item.py +0 -0
  133. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_browser/register_device_browser.py +0 -0
  134. {bec_widgets-0.99.10/bec_widgets/widgets/figure/plots/image → bec_widgets-0.99.12/bec_widgets/widgets/device_combobox}/__init__.py +0 -0
  135. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  136. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  137. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  138. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  139. {bec_widgets-0.99.10/bec_widgets/widgets/figure/plots/motor_map → bec_widgets-0.99.12/bec_widgets/widgets/device_line_edit}/__init__.py +0 -0
  140. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  141. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  142. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  143. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  144. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dock/__init__.py +0 -0
  145. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dock/dock.py +0 -0
  146. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dock/dock_area.py +0 -0
  147. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  148. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  149. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  150. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/__init__.py +0 -0
  151. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/figure.py +0 -0
  152. {bec_widgets-0.99.10/bec_widgets/widgets/figure/plots/waveform → bec_widgets-0.99.12/bec_widgets/widgets/figure/plots}/__init__.py +0 -0
  153. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  154. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  155. {bec_widgets-0.99.10/bec_widgets/widgets → bec_widgets-0.99.12/bec_widgets/widgets/figure/plots}/image/__init__.py +0 -0
  156. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  157. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  158. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  159. {bec_widgets-0.99.10/bec_widgets/widgets/jupyter_console → bec_widgets-0.99.12/bec_widgets/widgets/figure/plots/motor_map}/__init__.py +0 -0
  160. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  161. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  162. {bec_widgets-0.99.10/bec_widgets/widgets/motor_map → bec_widgets-0.99.12/bec_widgets/widgets/figure/plots/waveform}/__init__.py +0 -0
  163. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  164. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  165. {bec_widgets-0.99.10/bec_widgets/widgets/motor_map/motor_map_dialog → bec_widgets-0.99.12/bec_widgets/widgets/image}/__init__.py +0 -0
  166. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  167. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  168. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/image/image_widget.py +0 -0
  169. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  170. {bec_widgets-0.99.10/bec_widgets/widgets/position_indicator → bec_widgets-0.99.12/bec_widgets/widgets/jupyter_console}/__init__.py +0 -0
  171. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  172. {bec_widgets-0.99.10/bec_widgets/widgets/positioner_box → bec_widgets-0.99.12/bec_widgets/widgets/motor_map}/__init__.py +0 -0
  173. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  174. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  175. {bec_widgets-0.99.10/bec_widgets/widgets/spinner → bec_widgets-0.99.12/bec_widgets/widgets/motor_map/motor_map_dialog}/__init__.py +0 -0
  176. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  177. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  178. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  179. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  180. {bec_widgets-0.99.10/bec_widgets/widgets/stop_button → bec_widgets-0.99.12/bec_widgets/widgets/position_indicator}/__init__.py +0 -0
  181. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  182. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  183. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  184. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  185. {bec_widgets-0.99.10/bec_widgets/widgets/text_box → bec_widgets-0.99.12/bec_widgets/widgets/positioner_box}/__init__.py +0 -0
  186. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  187. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
  188. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
  189. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
  190. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
  191. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
  192. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
  193. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  194. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
  195. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  196. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  197. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  198. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  199. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  200. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  201. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  202. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  203. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  204. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  205. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  206. {bec_widgets-0.99.10/bec_widgets/widgets/toggle → bec_widgets-0.99.12/bec_widgets/widgets/spinner}/__init__.py +0 -0
  207. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  208. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/spinner/spinner.py +0 -0
  209. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  210. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  211. {bec_widgets-0.99.10/bec_widgets/widgets/vscode → bec_widgets-0.99.12/bec_widgets/widgets/stop_button}/__init__.py +0 -0
  212. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  213. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  214. {bec_widgets-0.99.10/bec_widgets/widgets/waveform → bec_widgets-0.99.12/bec_widgets/widgets/text_box}/__init__.py +0 -0
  215. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  216. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/text_box/text_box.py +0 -0
  217. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  218. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  219. {bec_widgets-0.99.10/bec_widgets/widgets/waveform/waveform_popups → bec_widgets-0.99.12/bec_widgets/widgets/toggle}/__init__.py +0 -0
  220. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  221. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/toggle/toggle.py +0 -0
  222. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  223. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  224. {bec_widgets-0.99.10/bec_widgets/widgets/waveform/waveform_popups/curve_dialog → bec_widgets-0.99.12/bec_widgets/widgets/vscode}/__init__.py +0 -0
  225. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  226. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  227. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  228. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/vscode/vscode.py +0 -0
  229. {bec_widgets-0.99.10/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog → bec_widgets-0.99.12/bec_widgets/widgets/waveform}/__init__.py +0 -0
  230. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  231. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  232. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  233. {bec_widgets-0.99.10/bec_widgets/widgets/website → bec_widgets-0.99.12/bec_widgets/widgets/waveform/waveform_popups}/__init__.py +0 -0
  234. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  235. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  236. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
  237. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  238. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  239. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  240. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/website/website.py +0 -0
  241. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  242. {bec_widgets-0.99.10 → bec_widgets-0.99.12}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
@@ -1,5 +1,27 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.99.12 (2024-08-29)
4
+
5
+ ### Fix
6
+
7
+ * fix(toolbar): widget action added ([`2efd487`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2efd48736cbe04e84533f7933c552ea8274e2162))
8
+
9
+ * fix(reset_button): reset button added ([`6ed1efc`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6ed1efc6af193908f70aa37fb73157d2ca6a62f4))
10
+
11
+ * fix(abort_button): abort button added; some minor fixes ([`a568633`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a568633c3206a8c26069d140f2d9a548bf4124b0))
12
+
13
+ ## v0.99.11 (2024-08-29)
14
+
15
+ ### Fix
16
+
17
+ * fix(resume_button): resume button added ([`8be8295`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8be8295b2b38f36da210ab36c5da6d0a00e330cc))
18
+
19
+ ### Refactor
20
+
21
+ * refactor(icons): general app icon changed; jupyter app icon changed to material icon ([`5d73fe4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5d73fe455a568ad40a9fadc5ce6e249d782ad20d))
22
+
23
+ * refactor: add option to select scan and hide arg bundle buttons ([`7dadab1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7dadab1f14aa41876ad39e8cdc7f7732248cc643))
24
+
3
25
  ## v0.99.10 (2024-08-29)
4
26
 
5
27
  ### Fix
@@ -128,10 +150,6 @@ If not theme is set, the init of the BECWidget base class sets the default theme
128
150
 
129
151
  ## v0.98.0 (2024-08-25)
130
152
 
131
- ### Feature
132
-
133
- * feat(themes): added set_theme method ([`2b4449a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2b4449afebdda0a97f95712a1353cf40ec55c283))
134
-
135
153
  ### Fix
136
154
 
137
155
  * fix(toolbar): removed hardcoded color values ([`afdf4e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/afdf4e8782a22566932180224fa1c924d24c810f))
@@ -142,18 +160,6 @@ If not theme is set, the init of the BECWidget base class sets the default theme
142
160
 
143
161
  * fix: fix color palette if qtheme was not called ([`3f3b207`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3f3b207295ebd406ebaeecee465c774965161b8b))
144
162
 
145
- * fix(figure): removed theme from figure init ([`e42b84c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e42b84c63650297d67feffccc02a2c2ba111ca79))
146
-
147
- * fix: use globally set theme instead of the internal bec widgets theme ([`77c5aa7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/77c5aa741cf1f5b969a42aa878aa2965176dbf41))
148
-
149
- * fix(waveform): fixed icon appearance ([`36ad464`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/36ad4641594b67c9b789515c28f7db78a12757ee))
150
-
151
163
  ### Refactor
152
164
 
153
165
  * refactor(waveform): use set theme for demo ([`44cfda1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/44cfda1c07306669c9a4e09706d95e6b91dee370))
154
-
155
- ## v0.97.0 (2024-08-23)
156
-
157
- ### Fix
158
-
159
- * fix(toolbar icon): fixed material icon toolbar for theme changes ([`3ecbd60`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3ecbd60627994417c9175364e5909710dbcdceb2))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.99.10
3
+ Version: 0.99.12
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
@@ -13,6 +13,7 @@ class Widgets(str, enum.Enum):
13
13
  Enum for the available widgets.
14
14
  """
15
15
 
16
+ AbortButton = "AbortButton"
16
17
  BECDock = "BECDock"
17
18
  BECDockArea = "BECDockArea"
18
19
  BECFigure = "BECFigure"
@@ -27,6 +28,8 @@ class Widgets(str, enum.Enum):
27
28
  DeviceLineEdit = "DeviceLineEdit"
28
29
  PositionerBox = "PositionerBox"
29
30
  PositionerControlLine = "PositionerControlLine"
31
+ ResetButton = "ResetButton"
32
+ ResumeButton = "ResumeButton"
30
33
  RingProgressBar = "RingProgressBar"
31
34
  ScanControl = "ScanControl"
32
35
  StopButton = "StopButton"
@@ -35,6 +38,24 @@ class Widgets(str, enum.Enum):
35
38
  WebsiteWidget = "WebsiteWidget"
36
39
 
37
40
 
41
+ class AbortButton(RPCBase):
42
+ @property
43
+ @rpc_call
44
+ def _config_dict(self) -> "dict":
45
+ """
46
+ Get the configuration of the widget.
47
+
48
+ Returns:
49
+ dict: The configuration of the widget.
50
+ """
51
+
52
+ @rpc_call
53
+ def _get_all_rpc(self) -> "dict":
54
+ """
55
+ Get all registered RPC objects.
56
+ """
57
+
58
+
38
59
  class BECCurve(RPCBase):
39
60
  @rpc_call
40
61
  def remove(self):
@@ -2373,7 +2394,7 @@ class DeviceLineEdit(RPCBase):
2373
2394
 
2374
2395
  class PositionerBox(RPCBase):
2375
2396
  @rpc_call
2376
- def set_positioner(self, positioner: str):
2397
+ def set_positioner(self, positioner: "str | Positioner"):
2377
2398
  """
2378
2399
  Set the device
2379
2400
 
@@ -2384,7 +2405,7 @@ class PositionerBox(RPCBase):
2384
2405
 
2385
2406
  class PositionerControlLine(RPCBase):
2386
2407
  @rpc_call
2387
- def set_positioner(self, positioner: str):
2408
+ def set_positioner(self, positioner: "str | Positioner"):
2388
2409
  """
2389
2410
  Set the device
2390
2411
 
@@ -2393,6 +2414,42 @@ class PositionerControlLine(RPCBase):
2393
2414
  """
2394
2415
 
2395
2416
 
2417
+ class ResetButton(RPCBase):
2418
+ @property
2419
+ @rpc_call
2420
+ def _config_dict(self) -> "dict":
2421
+ """
2422
+ Get the configuration of the widget.
2423
+
2424
+ Returns:
2425
+ dict: The configuration of the widget.
2426
+ """
2427
+
2428
+ @rpc_call
2429
+ def _get_all_rpc(self) -> "dict":
2430
+ """
2431
+ Get all registered RPC objects.
2432
+ """
2433
+
2434
+
2435
+ class ResumeButton(RPCBase):
2436
+ @property
2437
+ @rpc_call
2438
+ def _config_dict(self) -> "dict":
2439
+ """
2440
+ Get the configuration of the widget.
2441
+
2442
+ Returns:
2443
+ dict: The configuration of the widget.
2444
+ """
2445
+
2446
+ @rpc_call
2447
+ def _get_all_rpc(self) -> "dict":
2448
+ """
2449
+ Get all registered RPC objects.
2450
+ """
2451
+
2452
+
2396
2453
  class Ring(RPCBase):
2397
2454
  @rpc_call
2398
2455
  def _get_all_rpc(self) -> "dict":
@@ -80,7 +80,7 @@ def main(): # pragma: no cover
80
80
  app = QApplication(sys.argv)
81
81
  icon = QIcon()
82
82
  icon.addFile(
83
- os.path.join(MODULE_PATH, "assets", "app_icons", "BEC-Dark.png"), size=QSize(48, 48)
83
+ os.path.join(MODULE_PATH, "assets", "app_icons", "BEC-General-App.png"), size=QSize(48, 48)
84
84
  )
85
85
  app.setWindowIcon(icon)
86
86
  main_window = BECGeneralApp()
@@ -2,6 +2,7 @@ import os
2
2
 
3
3
  import numpy as np
4
4
  import pyqtgraph as pg
5
+ from bec_qthemes import material_icon
5
6
  from qtpy.QtCore import QSize
6
7
  from qtpy.QtGui import QIcon
7
8
  from qtpy.QtWidgets import (
@@ -200,10 +201,7 @@ if __name__ == "__main__": # pragma: no cover
200
201
  app.setApplicationName("Jupyter Console")
201
202
  app.setApplicationDisplayName("Jupyter Console")
202
203
  apply_theme("dark")
203
- icon = QIcon()
204
- icon.addFile(
205
- os.path.join(module_path, "assets", "app_icons", "terminal_icon.png"), size=QSize(48, 48)
206
- )
204
+ icon = material_icon("terminal", color="#434343", filled=True)
207
205
  app.setWindowIcon(icon)
208
206
 
209
207
  bec_dispatcher = BECDispatcher()
@@ -142,6 +142,31 @@ class DeviceSelectionAction(ToolBarAction):
142
142
  self.device_combobox.setStyleSheet(f"QComboBox {{ background-color: {color}; }}")
143
143
 
144
144
 
145
+ class WidgetAction(ToolBarAction):
146
+ """
147
+ Action for adding any widget to the toolbar.
148
+
149
+ Args:
150
+ label (str|None): The label for the widget.
151
+ widget (QWidget): The widget to be added to the toolbar.
152
+
153
+ """
154
+
155
+ def __init__(self, label: str | None = None, widget: QWidget = None):
156
+ super().__init__()
157
+ self.label = label
158
+ self.widget = widget
159
+
160
+ def add_to_toolbar(self, toolbar, target):
161
+ widget = QWidget()
162
+ layout = QHBoxLayout(widget)
163
+ if self.label is not None:
164
+ label = QLabel(f"{self.label}")
165
+ layout.addWidget(label)
166
+ layout.addWidget(self.widget)
167
+ toolbar.addWidget(widget)
168
+
169
+
145
170
  class ExpandableMenuAction(ToolBarAction):
146
171
  """
147
172
  Action for an expandable menu in the toolbar.
@@ -0,0 +1 @@
1
+ {'files': ['button_abort.py']}
@@ -0,0 +1,54 @@
1
+ # Copyright (C) 2022 The Qt Company Ltd.
2
+ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
+
4
+ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
+
6
+ from bec_widgets.utils.bec_designer import designer_material_icon
7
+ from bec_widgets.widgets.button_abort.button_abort import AbortButton
8
+
9
+ DOM_XML = """
10
+ <ui language='c++'>
11
+ <widget class='AbortButton' name='abort_button'>
12
+ </widget>
13
+ </ui>
14
+ """
15
+
16
+
17
+ class AbortButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
18
+ def __init__(self):
19
+ super().__init__()
20
+ self._form_editor = None
21
+
22
+ def createWidget(self, parent):
23
+ t = AbortButton(parent)
24
+ return t
25
+
26
+ def domXml(self):
27
+ return DOM_XML
28
+
29
+ def group(self):
30
+ return "BEC Buttons"
31
+
32
+ def icon(self):
33
+ return designer_material_icon(AbortButton.ICON_NAME)
34
+
35
+ def includeFile(self):
36
+ return "abort_button"
37
+
38
+ def initialize(self, form_editor):
39
+ self._form_editor = form_editor
40
+
41
+ def isContainer(self):
42
+ return False
43
+
44
+ def isInitialized(self):
45
+ return self._form_editor is not None
46
+
47
+ def name(self):
48
+ return "AbortButton"
49
+
50
+ def toolTip(self):
51
+ return "A button that abort the scan."
52
+
53
+ def whatsThis(self):
54
+ return self.toolTip()
@@ -0,0 +1,49 @@
1
+ from bec_qthemes import material_icon
2
+ from qtpy.QtCore import Qt
3
+ from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
4
+
5
+ from bec_widgets.qt_utils.error_popups import SafeSlot
6
+ from bec_widgets.utils.bec_widget import BECWidget
7
+
8
+
9
+ class AbortButton(BECWidget, QWidget):
10
+ """A button that abort the scan."""
11
+
12
+ ICON_NAME = "cancel"
13
+
14
+ def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):
15
+ super().__init__(client=client, config=config, gui_id=gui_id)
16
+ QWidget.__init__(self, parent=parent)
17
+
18
+ self.get_bec_shortcuts()
19
+
20
+ self.layout = QHBoxLayout(self)
21
+ self.layout.setSpacing(0)
22
+ self.layout.setContentsMargins(0, 0, 0, 0)
23
+ self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
24
+
25
+ if toolbar:
26
+ icon = material_icon("cancel", color="#666666", filled=True)
27
+ self.button = QToolButton(icon=icon)
28
+ self.button.triggered.connect(self.abort_scan)
29
+ else:
30
+ self.button = QPushButton()
31
+ self.button.setText("Abort")
32
+ self.button.setStyleSheet(
33
+ "background-color: #666666; color: white; font-weight: bold; font-size: 12px;"
34
+ )
35
+ self.button.clicked.connect(self.abort_scan)
36
+
37
+ self.layout.addWidget(self.button)
38
+
39
+ @SafeSlot()
40
+ def abort_scan(
41
+ self,
42
+ ): # , scan_id: str | None = None): #FIXME scan_id will be added when combining with Queue widget
43
+ """
44
+ Abort the scan.
45
+
46
+ Args:
47
+ scan_id(str|None): The scan id to abort. If None, the current scan will be aborted.
48
+ """
49
+ self.queue.request_scan_abortion()
@@ -0,0 +1,15 @@
1
+ def main(): # pragma: no cover
2
+ from qtpy import PYSIDE6
3
+
4
+ if not PYSIDE6:
5
+ print("PYSIDE6 is not available in the environment. Cannot patch designer.")
6
+ return
7
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
+
9
+ from bec_widgets.widgets.button_abort.abort_button_plugin import AbortButtonPlugin
10
+
11
+ QPyDesignerCustomWidgetCollection.addCustomWidget(AbortButtonPlugin())
12
+
13
+
14
+ if __name__ == "__main__": # pragma: no cover
15
+ main()
@@ -0,0 +1,42 @@
1
+ from bec_qthemes import material_icon
2
+ from qtpy.QtCore import Qt
3
+ from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
4
+
5
+ from bec_widgets.qt_utils.error_popups import SafeSlot
6
+ from bec_widgets.utils.bec_widget import BECWidget
7
+
8
+
9
+ class ResetButton(BECWidget, QWidget):
10
+ """A button that reset the scan queue."""
11
+
12
+ ICON_NAME = "restart_alt"
13
+
14
+ def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):
15
+ super().__init__(client=client, config=config, gui_id=gui_id)
16
+ QWidget.__init__(self, parent=parent)
17
+
18
+ self.get_bec_shortcuts()
19
+
20
+ self.layout = QHBoxLayout(self)
21
+ self.layout.setSpacing(0)
22
+ self.layout.setContentsMargins(0, 0, 0, 0)
23
+ self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
24
+
25
+ if toolbar:
26
+ icon = material_icon("restart_alt", color="#F19E39", filled=True)
27
+ self.button = QToolButton(icon=icon)
28
+ self.button.triggered.connect(self.reset_queue)
29
+ else:
30
+ self.button = QPushButton()
31
+ self.button.setText("Reset Queue")
32
+ self.button.setStyleSheet(
33
+ "background-color: #F19E39; color: white; font-weight: bold; font-size: 12px;"
34
+ )
35
+ self.button.clicked.connect(self.reset_queue)
36
+
37
+ self.layout.addWidget(self.button)
38
+
39
+ @SafeSlot()
40
+ def reset_queue(self):
41
+ """Stop the scan."""
42
+ self.queue.request_queue_reset()
@@ -0,0 +1,15 @@
1
+ def main(): # pragma: no cover
2
+ from qtpy import PYSIDE6
3
+
4
+ if not PYSIDE6:
5
+ print("PYSIDE6 is not available in the environment. Cannot patch designer.")
6
+ return
7
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
+
9
+ from bec_widgets.widgets.button_reset.reset_button_plugin import ResetButtonPlugin
10
+
11
+ QPyDesignerCustomWidgetCollection.addCustomWidget(ResetButtonPlugin())
12
+
13
+
14
+ if __name__ == "__main__": # pragma: no cover
15
+ main()
@@ -0,0 +1 @@
1
+ {'files': ['button_reset.py']}
@@ -0,0 +1,54 @@
1
+ # Copyright (C) 2022 The Qt Company Ltd.
2
+ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
+
4
+ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
+
6
+ from bec_widgets.utils.bec_designer import designer_material_icon
7
+ from bec_widgets.widgets.button_reset.button_reset import ResetButton
8
+
9
+ DOM_XML = """
10
+ <ui language='c++'>
11
+ <widget class='ResetButton' name='reset_button'>
12
+ </widget>
13
+ </ui>
14
+ """
15
+
16
+
17
+ class ResetButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
18
+ def __init__(self):
19
+ super().__init__()
20
+ self._form_editor = None
21
+
22
+ def createWidget(self, parent):
23
+ t = ResetButton(parent)
24
+ return t
25
+
26
+ def domXml(self):
27
+ return DOM_XML
28
+
29
+ def group(self):
30
+ return "BEC Buttons"
31
+
32
+ def icon(self):
33
+ return designer_material_icon(ResetButton.ICON_NAME)
34
+
35
+ def includeFile(self):
36
+ return "reset_button"
37
+
38
+ def initialize(self, form_editor):
39
+ self._form_editor = form_editor
40
+
41
+ def isContainer(self):
42
+ return False
43
+
44
+ def isInitialized(self):
45
+ return self._form_editor is not None
46
+
47
+ def name(self):
48
+ return "ResetButton"
49
+
50
+ def toolTip(self):
51
+ return "A button that reset the scan queue."
52
+
53
+ def whatsThis(self):
54
+ return self.toolTip()
@@ -0,0 +1,42 @@
1
+ from bec_qthemes import material_icon
2
+ from qtpy.QtCore import Qt
3
+ from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
4
+
5
+ from bec_widgets.qt_utils.error_popups import SafeSlot
6
+ from bec_widgets.utils.bec_widget import BECWidget
7
+
8
+
9
+ class ResumeButton(BECWidget, QWidget):
10
+ """A button that continue scan queue."""
11
+
12
+ ICON_NAME = "resume"
13
+
14
+ def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):
15
+ super().__init__(client=client, config=config, gui_id=gui_id)
16
+ QWidget.__init__(self, parent=parent)
17
+
18
+ self.get_bec_shortcuts()
19
+
20
+ self.layout = QHBoxLayout(self)
21
+ self.layout.setSpacing(0)
22
+ self.layout.setContentsMargins(0, 0, 0, 0)
23
+ self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
24
+
25
+ if toolbar:
26
+ icon = material_icon("resume", color="#2793e8", filled=True)
27
+ self.button = QToolButton(icon=icon)
28
+ self.button.triggered.connect(self.continue_scan)
29
+ else:
30
+ self.button = QPushButton()
31
+ self.button.setText("Resume")
32
+ self.button.setStyleSheet(
33
+ "background-color: #2793e8; color: white; font-weight: bold; font-size: 12px;"
34
+ )
35
+ self.button.clicked.connect(self.continue_scan)
36
+
37
+ self.layout.addWidget(self.button)
38
+
39
+ @SafeSlot()
40
+ def continue_scan(self):
41
+ """Stop the scan."""
42
+ self.queue.request_scan_continuation()
@@ -0,0 +1,15 @@
1
+ def main(): # pragma: no cover
2
+ from qtpy import PYSIDE6
3
+
4
+ if not PYSIDE6:
5
+ print("PYSIDE6 is not available in the environment. Cannot patch designer.")
6
+ return
7
+ from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
8
+
9
+ from bec_widgets.widgets.button_resume.resume_button_plugin import ResumeButtonPlugin
10
+
11
+ QPyDesignerCustomWidgetCollection.addCustomWidget(ResumeButtonPlugin())
12
+
13
+
14
+ if __name__ == "__main__": # pragma: no cover
15
+ main()
@@ -0,0 +1 @@
1
+ {'files': ['button_resume.py']}
@@ -0,0 +1,54 @@
1
+ # Copyright (C) 2022 The Qt Company Ltd.
2
+ # SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
3
+
4
+ from qtpy.QtDesigner import QDesignerCustomWidgetInterface
5
+
6
+ from bec_widgets.utils.bec_designer import designer_material_icon
7
+ from bec_widgets.widgets.button_resume.button_resume import ResumeButton
8
+
9
+ DOM_XML = """
10
+ <ui language='c++'>
11
+ <widget class='ResumeButton' name='resume_button'>
12
+ </widget>
13
+ </ui>
14
+ """
15
+
16
+
17
+ class ResumeButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
18
+ def __init__(self):
19
+ super().__init__()
20
+ self._form_editor = None
21
+
22
+ def createWidget(self, parent):
23
+ t = ResumeButton(parent)
24
+ return t
25
+
26
+ def domXml(self):
27
+ return DOM_XML
28
+
29
+ def group(self):
30
+ return "BEC Buttons"
31
+
32
+ def icon(self):
33
+ return designer_material_icon(ResumeButton.ICON_NAME)
34
+
35
+ def includeFile(self):
36
+ return "resume_button"
37
+
38
+ def initialize(self, form_editor):
39
+ self._form_editor = form_editor
40
+
41
+ def isContainer(self):
42
+ return False
43
+
44
+ def isInitialized(self):
45
+ return self._form_editor is not None
46
+
47
+ def name(self):
48
+ return "ResumeButton"
49
+
50
+ def toolTip(self):
51
+ return "A button that continue scan queue."
52
+
53
+ def whatsThis(self):
54
+ return self.toolTip()
@@ -1,5 +1,7 @@
1
1
  """ Module for a PositionerBox widget to control a positioner device."""
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  import os
4
6
  import uuid
5
7