bec-widgets 0.99.11__tar.gz → 0.99.13__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 (240) hide show
  1. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/CHANGELOG.md +22 -20
  2. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/PKG-INFO +1 -1
  3. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/client.py +40 -2
  4. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/qt_utils/toolbar.py +25 -0
  5. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/colors.py +12 -1
  6. bec_widgets-0.99.13/bec_widgets/widgets/button_abort/abort_button.pyproject +1 -0
  7. bec_widgets-0.99.13/bec_widgets/widgets/button_abort/abort_button_plugin.py +54 -0
  8. bec_widgets-0.99.13/bec_widgets/widgets/button_abort/button_abort.py +49 -0
  9. bec_widgets-0.99.13/bec_widgets/widgets/button_abort/register_abort_button.py +15 -0
  10. bec_widgets-0.99.13/bec_widgets/widgets/button_reset/button_reset.py +42 -0
  11. bec_widgets-0.99.13/bec_widgets/widgets/button_reset/register_reset_button.py +15 -0
  12. bec_widgets-0.99.13/bec_widgets/widgets/button_reset/reset_button.pyproject +1 -0
  13. bec_widgets-0.99.13/bec_widgets/widgets/button_reset/reset_button_plugin.py +54 -0
  14. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/button_resume/button_resume.py +1 -1
  15. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +21 -5
  16. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_box.py +2 -0
  17. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/stop_button/stop_button.py +9 -2
  18. bec_widgets-0.99.13/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  19. bec_widgets-0.99.13/bec_widgets/widgets/website/__init__.py +0 -0
  20. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/pyproject.toml +1 -1
  21. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.git_hooks/pre-commit +0 -0
  22. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.gitignore +0 -0
  23. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.gitlab/issue_templates/bug_report_template.md +0 -0
  24. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  25. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.gitlab/issue_templates/feature_request_template.md +0 -0
  26. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.gitlab/merge_request_templates/default.md +0 -0
  27. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.gitlab-ci.yml +0 -0
  28. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.pylintrc +0 -0
  29. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/.readthedocs.yaml +0 -0
  30. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/LICENSE +0 -0
  31. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/README.md +0 -0
  32. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/__init__.py +0 -0
  33. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  34. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  35. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/assets/status_icons/error.svg +0 -0
  36. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
  37. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/assets/status_icons/refresh.svg +0 -0
  38. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/assets/status_icons/running.svg +0 -0
  39. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/assets/status_icons/warning.svg +0 -0
  40. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/__init__.py +0 -0
  41. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/auto_updates.py +0 -0
  42. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/client_utils.py +0 -0
  43. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/generate_cli.py +0 -0
  44. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/rpc_register.py +0 -0
  45. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  46. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/cli/server.py +0 -0
  47. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/__init__.py +0 -0
  48. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/general_app/__init__.py +0 -0
  49. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/general_app/general_app.py +0 -0
  50. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/general_app/general_app.ui +0 -0
  51. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/general_app/web_links.py +0 -0
  52. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  53. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  54. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  55. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  56. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  57. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  58. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  59. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  60. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  61. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/qt_utils/__init__.py +0 -0
  62. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/qt_utils/error_popups.py +0 -0
  63. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  64. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  65. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/__init__.py +0 -0
  66. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/bec_connector.py +0 -0
  67. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/bec_designer.py +0 -0
  68. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/bec_dispatcher.py +0 -0
  69. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/bec_table.py +0 -0
  70. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/bec_widget.py +0 -0
  71. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/container_utils.py +0 -0
  72. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/crosshair.py +0 -0
  73. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/entry_validator.py +0 -0
  74. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  75. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/layout_manager.py +0 -0
  76. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  77. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/plugin_templates/register.template +0 -0
  78. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/plugin_utils.py +0 -0
  79. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/reference_utils.py +0 -0
  80. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/rpc_decorator.py +0 -0
  81. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/thread_checker.py +0 -0
  82. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/ui_loader.py +0 -0
  83. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/validator_delegate.py +0 -0
  84. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/widget_io.py +0 -0
  85. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/utils/yaml_dialog.py +0 -0
  86. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/__init__.py +0 -0
  87. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  88. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  89. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  90. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  91. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  92. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  93. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  94. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  95. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  96. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  97. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  98. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  99. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  100. {bec_widgets-0.99.11/bec_widgets/widgets/button_resume → bec_widgets-0.99.13/bec_widgets/widgets/button_abort}/__init__.py +0 -0
  101. {bec_widgets-0.99.11/bec_widgets/widgets/color_button → bec_widgets-0.99.13/bec_widgets/widgets/button_reset}/__init__.py +0 -0
  102. {bec_widgets-0.99.11/bec_widgets/widgets/colormap_selector → bec_widgets-0.99.13/bec_widgets/widgets/button_resume}/__init__.py +0 -0
  103. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/button_resume/register_resume_button.py +0 -0
  104. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/button_resume/resume_button.pyproject +0 -0
  105. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/button_resume/resume_button_plugin.py +0 -0
  106. {bec_widgets-0.99.11/bec_widgets/widgets/dark_mode_button → bec_widgets-0.99.13/bec_widgets/widgets/color_button}/__init__.py +0 -0
  107. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/color_button/color_button.py +0 -0
  108. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  109. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  110. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  111. {bec_widgets-0.99.11/bec_widgets/widgets/device_browser → bec_widgets-0.99.13/bec_widgets/widgets/colormap_selector}/__init__.py +0 -0
  112. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  113. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  114. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  115. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  116. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/console/console.py +0 -0
  117. {bec_widgets-0.99.11/bec_widgets/widgets/device_combobox → bec_widgets-0.99.13/bec_widgets/widgets/dark_mode_button}/__init__.py +0 -0
  118. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject +0 -0
  119. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +0 -0
  120. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +0 -0
  121. {bec_widgets-0.99.11/bec_widgets/widgets/device_line_edit → bec_widgets-0.99.13/bec_widgets/widgets/device_browser}/__init__.py +0 -0
  122. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_browser/device_browser.py +0 -0
  123. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_browser/device_browser.pyproject +0 -0
  124. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_browser/device_browser.ui +0 -0
  125. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_browser/device_browser_plugin.py +0 -0
  126. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_browser/device_item/__init__.py +0 -0
  127. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_browser/device_item/device_item.py +0 -0
  128. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_browser/register_device_browser.py +0 -0
  129. {bec_widgets-0.99.11/bec_widgets/widgets/figure/plots → bec_widgets-0.99.13/bec_widgets/widgets/device_combobox}/__init__.py +0 -0
  130. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  131. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  132. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  133. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  134. {bec_widgets-0.99.11/bec_widgets/widgets/figure/plots/image → bec_widgets-0.99.13/bec_widgets/widgets/device_line_edit}/__init__.py +0 -0
  135. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  136. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  137. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  138. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  139. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dock/__init__.py +0 -0
  140. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dock/dock.py +0 -0
  141. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dock/dock_area.py +0 -0
  142. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  143. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  144. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  145. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/__init__.py +0 -0
  146. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/figure.py +0 -0
  147. {bec_widgets-0.99.11/bec_widgets/widgets/figure/plots/motor_map → bec_widgets-0.99.13/bec_widgets/widgets/figure/plots}/__init__.py +0 -0
  148. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  149. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  150. {bec_widgets-0.99.11/bec_widgets/widgets/figure/plots/waveform → bec_widgets-0.99.13/bec_widgets/widgets/figure/plots/image}/__init__.py +0 -0
  151. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  152. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  153. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  154. {bec_widgets-0.99.11/bec_widgets/widgets/image → bec_widgets-0.99.13/bec_widgets/widgets/figure/plots/motor_map}/__init__.py +0 -0
  155. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  156. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  157. {bec_widgets-0.99.11/bec_widgets/widgets/jupyter_console → bec_widgets-0.99.13/bec_widgets/widgets/figure/plots/waveform}/__init__.py +0 -0
  158. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  159. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  160. {bec_widgets-0.99.11/bec_widgets/widgets/motor_map → bec_widgets-0.99.13/bec_widgets/widgets/image}/__init__.py +0 -0
  161. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  162. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  163. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/image/image_widget.py +0 -0
  164. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  165. {bec_widgets-0.99.11/bec_widgets/widgets/motor_map/motor_map_dialog → bec_widgets-0.99.13/bec_widgets/widgets/jupyter_console}/__init__.py +0 -0
  166. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  167. {bec_widgets-0.99.11/bec_widgets/widgets/position_indicator → bec_widgets-0.99.13/bec_widgets/widgets/motor_map}/__init__.py +0 -0
  168. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  169. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  170. {bec_widgets-0.99.11/bec_widgets/widgets/positioner_box → bec_widgets-0.99.13/bec_widgets/widgets/motor_map/motor_map_dialog}/__init__.py +0 -0
  171. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  172. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  173. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  174. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  175. {bec_widgets-0.99.11/bec_widgets/widgets/spinner → bec_widgets-0.99.13/bec_widgets/widgets/position_indicator}/__init__.py +0 -0
  176. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  177. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  178. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  179. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  180. {bec_widgets-0.99.11/bec_widgets/widgets/stop_button → bec_widgets-0.99.13/bec_widgets/widgets/positioner_box}/__init__.py +0 -0
  181. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  182. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
  183. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
  184. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
  185. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
  186. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
  187. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
  188. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  189. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
  190. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  191. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  192. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  193. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  194. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  195. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  196. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  197. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  198. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  199. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  200. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  201. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  202. {bec_widgets-0.99.11/bec_widgets/widgets/text_box → bec_widgets-0.99.13/bec_widgets/widgets/spinner}/__init__.py +0 -0
  203. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  204. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/spinner/spinner.py +0 -0
  205. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  206. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  207. {bec_widgets-0.99.11/bec_widgets/widgets/toggle → bec_widgets-0.99.13/bec_widgets/widgets/stop_button}/__init__.py +0 -0
  208. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  209. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  210. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  211. {bec_widgets-0.99.11/bec_widgets/widgets/vscode → bec_widgets-0.99.13/bec_widgets/widgets/text_box}/__init__.py +0 -0
  212. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  213. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/text_box/text_box.py +0 -0
  214. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  215. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  216. {bec_widgets-0.99.11/bec_widgets/widgets/waveform → bec_widgets-0.99.13/bec_widgets/widgets/toggle}/__init__.py +0 -0
  217. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  218. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/toggle/toggle.py +0 -0
  219. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  220. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  221. {bec_widgets-0.99.11/bec_widgets/widgets/waveform/waveform_popups → bec_widgets-0.99.13/bec_widgets/widgets/vscode}/__init__.py +0 -0
  222. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  223. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  224. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  225. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/vscode/vscode.py +0 -0
  226. {bec_widgets-0.99.11/bec_widgets/widgets/waveform/waveform_popups/curve_dialog → bec_widgets-0.99.13/bec_widgets/widgets/waveform}/__init__.py +0 -0
  227. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  228. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  229. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  230. {bec_widgets-0.99.11/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog → bec_widgets-0.99.13/bec_widgets/widgets/waveform/waveform_popups}/__init__.py +0 -0
  231. {bec_widgets-0.99.11/bec_widgets/widgets/website → bec_widgets-0.99.13/bec_widgets/widgets/waveform/waveform_popups/curve_dialog}/__init__.py +0 -0
  232. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  233. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  234. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
  235. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  236. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  237. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  238. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/website/website.py +0 -0
  239. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  240. {bec_widgets-0.99.11 → bec_widgets-0.99.13}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
@@ -1,5 +1,27 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.99.13 (2024-08-30)
4
+
5
+ ### Documentation
6
+
7
+ * docs: minor updates to the widget tutorial ([`ec9c8f2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/ec9c8f29633364c45ebd998a5411d428c1ce488d))
8
+
9
+ * docs(widget tutorial): step by step guide added ([`b32ced8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b32ced85fff628a9e1303a781630cdae3865238e))
10
+
11
+ ### Fix
12
+
13
+ * fix(dark mode button): fixed dark mode button state for external updates, including auto ([`a3110d9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a3110d98147295dcb1f9353f9aaf5461cba9232a))
14
+
15
+ ## v0.99.12 (2024-08-29)
16
+
17
+ ### Fix
18
+
19
+ * fix(toolbar): widget action added ([`2efd487`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2efd48736cbe04e84533f7933c552ea8274e2162))
20
+
21
+ * fix(reset_button): reset button added ([`6ed1efc`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6ed1efc6af193908f70aa37fb73157d2ca6a62f4))
22
+
23
+ * fix(abort_button): abort button added; some minor fixes ([`a568633`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a568633c3206a8c26069d140f2d9a548bf4124b0))
24
+
3
25
  ## v0.99.11 (2024-08-29)
4
26
 
5
27
  ### Fix
@@ -137,23 +159,3 @@ If not theme is set, the init of the BECWidget base class sets the default theme
137
159
  ### Test
138
160
 
139
161
  * test(dark_mode_button): added tests for dark mode button ([`df35aab`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/df35aabff30c5d00b1c441132bd370446653741e))
140
-
141
- ## v0.98.0 (2024-08-25)
142
-
143
- ### Fix
144
-
145
- * fix(toolbar): removed hardcoded color values ([`afdf4e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/afdf4e8782a22566932180224fa1c924d24c810f))
146
-
147
- * fix: transitioning to material icons ([`2a82032`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2a82032644a84e38df04e2035a6aa63f4a046360))
148
-
149
- * fix(dock_area): transitioned to MaterialIconAction ([`88a2f66`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/88a2f667588e9aeb34ae556fa327898824052bc3))
150
-
151
- * fix: fix color palette if qtheme was not called ([`3f3b207`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3f3b207295ebd406ebaeecee465c774965161b8b))
152
-
153
- * fix(figure): removed theme from figure init ([`e42b84c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e42b84c63650297d67feffccc02a2c2ba111ca79))
154
-
155
- * fix: use globally set theme instead of the internal bec widgets theme ([`77c5aa7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/77c5aa741cf1f5b969a42aa878aa2965176dbf41))
156
-
157
- ### Refactor
158
-
159
- * refactor(waveform): use set theme for demo ([`44cfda1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/44cfda1c07306669c9a4e09706d95e6b91dee370))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.99.11
3
+ Version: 0.99.13
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,7 @@ class Widgets(str, enum.Enum):
27
28
  DeviceLineEdit = "DeviceLineEdit"
28
29
  PositionerBox = "PositionerBox"
29
30
  PositionerControlLine = "PositionerControlLine"
31
+ ResetButton = "ResetButton"
30
32
  ResumeButton = "ResumeButton"
31
33
  RingProgressBar = "RingProgressBar"
32
34
  ScanControl = "ScanControl"
@@ -36,6 +38,24 @@ class Widgets(str, enum.Enum):
36
38
  WebsiteWidget = "WebsiteWidget"
37
39
 
38
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
+
39
59
  class BECCurve(RPCBase):
40
60
  @rpc_call
41
61
  def remove(self):
@@ -2374,7 +2394,7 @@ class DeviceLineEdit(RPCBase):
2374
2394
 
2375
2395
  class PositionerBox(RPCBase):
2376
2396
  @rpc_call
2377
- def set_positioner(self, positioner: str):
2397
+ def set_positioner(self, positioner: "str | Positioner"):
2378
2398
  """
2379
2399
  Set the device
2380
2400
 
@@ -2385,7 +2405,7 @@ class PositionerBox(RPCBase):
2385
2405
 
2386
2406
  class PositionerControlLine(RPCBase):
2387
2407
  @rpc_call
2388
- def set_positioner(self, positioner: str):
2408
+ def set_positioner(self, positioner: "str | Positioner"):
2389
2409
  """
2390
2410
  Set the device
2391
2411
 
@@ -2394,6 +2414,24 @@ class PositionerControlLine(RPCBase):
2394
2414
  """
2395
2415
 
2396
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
+
2397
2435
  class ResumeButton(RPCBase):
2398
2436
  @property
2399
2437
  @rpc_call
@@ -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.
@@ -8,7 +8,7 @@ import pyqtgraph as pg
8
8
  from bec_qthemes._os_appearance.listener import OSThemeSwitchListener
9
9
  from pydantic_core import PydanticCustomError
10
10
  from qtpy.QtGui import QColor
11
- from qtpy.QtWidgets import QApplication
11
+ from qtpy.QtWidgets import QApplication, QPushButton, QToolButton
12
12
 
13
13
 
14
14
  def get_theme_palette():
@@ -56,6 +56,17 @@ def apply_theme(theme: Literal["dark", "light"]):
56
56
  for pg_widget in children:
57
57
  pg_widget.setBackground("k" if theme == "dark" else "w")
58
58
 
59
+ dark_mode_buttons = [
60
+ button
61
+ for button in app.topLevelWidgets()
62
+ if hasattr(button, "dark_mode_enabled")
63
+ and hasattr(button, "mode_button")
64
+ and isinstance(button.mode_button, (QPushButton, QToolButton))
65
+ ]
66
+
67
+ for button in dark_mode_buttons:
68
+ button.dark_mode_enabled = theme == "dark"
69
+ button.update_mode_button()
59
70
  # now define stylesheet according to theme and apply it
60
71
  style = bec_qthemes.load_stylesheet(theme)
61
72
  app.setStyleSheet(style)
@@ -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()
@@ -30,7 +30,7 @@ class ResumeButton(BECWidget, QWidget):
30
30
  self.button = QPushButton()
31
31
  self.button.setText("Resume")
32
32
  self.button.setStyleSheet(
33
- "background-color: #2793e8 color: white; font-weight: bold; font-size: 12px;"
33
+ "background-color: #2793e8; color: white; font-weight: bold; font-size: 12px;"
34
34
  )
35
35
  self.button.clicked.connect(self.continue_scan)
36
36
 
@@ -1,6 +1,6 @@
1
1
  from bec_qthemes import material_icon
2
2
  from qtpy.QtCore import Property, Qt, Slot
3
- from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
3
+ from qtpy.QtWidgets import QApplication, QHBoxLayout, QPushButton, QToolButton, QWidget
4
4
 
5
5
  from bec_widgets.utils.bec_widget import BECWidget
6
6
  from bec_widgets.utils.colors import set_theme
@@ -27,17 +27,31 @@ class DarkModeButton(BECWidget, QWidget):
27
27
  self.layout.setContentsMargins(0, 0, 0, 0)
28
28
  self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
29
29
 
30
- icon = material_icon("dark_mode", size=(20, 20), convert_to_pixmap=False)
31
30
  if toolbar:
32
- self.mode_button = QToolButton(icon=icon)
31
+ self.mode_button = QToolButton()
33
32
  else:
34
- self.mode_button = QPushButton(icon=icon)
33
+ self.mode_button = QPushButton()
34
+
35
+ self.dark_mode_enabled = self._get_qapp_dark_mode_state()
35
36
  self.update_mode_button()
36
37
  self.mode_button.clicked.connect(self.toggle_dark_mode)
37
38
  self.layout.addWidget(self.mode_button)
38
39
  self.setLayout(self.layout)
39
40
  self.setFixedSize(40, 40)
40
41
 
42
+ def _get_qapp_dark_mode_state(self) -> bool:
43
+ """
44
+ Get the dark mode state from the QApplication.
45
+
46
+ Returns:
47
+ bool: True if dark mode is enabled, False otherwise.
48
+ """
49
+ qapp = QApplication.instance()
50
+ if hasattr(qapp, "theme") and qapp.theme["theme"] == "dark":
51
+ return True
52
+
53
+ return False
54
+
41
55
  @Property(bool)
42
56
  def dark_mode_enabled(self) -> bool:
43
57
  """
@@ -72,8 +86,10 @@ class DarkModeButton(BECWidget, QWidget):
72
86
  if __name__ == "__main__":
73
87
  from qtpy.QtWidgets import QApplication
74
88
 
75
- app = QApplication([])
89
+ from bec_widgets.utils.colors import set_theme
76
90
 
91
+ app = QApplication([])
92
+ set_theme("auto")
77
93
  w = DarkModeButton()
78
94
  w.show()
79
95
 
@@ -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
 
@@ -37,6 +37,13 @@ class StopButton(BECWidget, QWidget):
37
37
  self.layout.addWidget(self.button)
38
38
 
39
39
  @SafeSlot()
40
- def stop_scan(self):
41
- """Stop the scan."""
40
+ def stop_scan(
41
+ self,
42
+ ): # , scan_id: str | None = None): #FIXME scan_id will be added when combining with Queue widget
43
+ """
44
+ Stop the scan.
45
+
46
+ Args:
47
+ scan_id(str|None): The scan id to stop. If None, the current scan will be stopped.
48
+ """
42
49
  self.queue.request_scan_halt()
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.99.11"
7
+ version = "0.99.13"
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