bec-widgets 0.99.14__tar.gz → 0.100.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 (241) hide show
  1. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/CHANGELOG.md +22 -26
  2. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/PKG-INFO +1 -1
  3. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/qt_utils/toolbar.py +2 -0
  4. bec_widgets-0.100.0/bec_widgets/utils/bec_widget.py +86 -0
  5. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/colors.py +20 -21
  6. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +14 -1
  7. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/plot_base.py +34 -1
  8. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_box.py +8 -6
  9. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/pyproject.toml +1 -1
  10. bec_widgets-0.99.14/bec_widgets/utils/bec_widget.py +0 -32
  11. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.git_hooks/pre-commit +0 -0
  12. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.gitignore +0 -0
  13. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  14. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  15. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  16. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.gitlab/merge_request_templates/default.md +0 -0
  17. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.gitlab-ci.yml +0 -0
  18. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.pylintrc +0 -0
  19. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/.readthedocs.yaml +0 -0
  20. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/LICENSE +0 -0
  21. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/README.md +0 -0
  22. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/__init__.py +0 -0
  23. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  24. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  25. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/assets/status_icons/error.svg +0 -0
  26. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
  27. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/assets/status_icons/refresh.svg +0 -0
  28. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/assets/status_icons/running.svg +0 -0
  29. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/assets/status_icons/warning.svg +0 -0
  30. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/__init__.py +0 -0
  31. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/auto_updates.py +0 -0
  32. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/client.py +0 -0
  33. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/client_utils.py +0 -0
  34. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/generate_cli.py +0 -0
  35. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/rpc_register.py +0 -0
  36. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  37. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/cli/server.py +0 -0
  38. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/__init__.py +0 -0
  39. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  40. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  41. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  42. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  43. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  44. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  45. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  46. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  47. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  48. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  49. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  50. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  51. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  52. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/qt_utils/__init__.py +0 -0
  53. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  54. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  55. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  56. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/__init__.py +0 -0
  57. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/bec_connector.py +0 -0
  58. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/bec_designer.py +0 -0
  59. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  60. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/bec_table.py +0 -0
  61. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/container_utils.py +0 -0
  62. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/crosshair.py +0 -0
  63. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/entry_validator.py +0 -0
  64. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  65. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/layout_manager.py +0 -0
  66. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  67. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  68. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/plugin_utils.py +0 -0
  69. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/reference_utils.py +0 -0
  70. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  71. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/thread_checker.py +0 -0
  72. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/ui_loader.py +0 -0
  73. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/validator_delegate.py +0 -0
  74. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/widget_io.py +0 -0
  75. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  76. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/__init__.py +0 -0
  77. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  78. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  79. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  80. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  81. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  82. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  83. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  84. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  85. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  86. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  87. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  88. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  89. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  90. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_abort/__init__.py +0 -0
  91. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_abort/abort_button.pyproject +0 -0
  92. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_abort/abort_button_plugin.py +0 -0
  93. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_abort/button_abort.py +0 -0
  94. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_abort/register_abort_button.py +0 -0
  95. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_reset/__init__.py +0 -0
  96. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_reset/button_reset.py +0 -0
  97. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_reset/register_reset_button.py +0 -0
  98. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_reset/reset_button.pyproject +0 -0
  99. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_reset/reset_button_plugin.py +0 -0
  100. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_resume/__init__.py +0 -0
  101. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_resume/button_resume.py +0 -0
  102. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_resume/register_resume_button.py +0 -0
  103. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_resume/resume_button.pyproject +0 -0
  104. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/button_resume/resume_button_plugin.py +0 -0
  105. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/color_button/__init__.py +0 -0
  106. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/color_button/color_button.py +0 -0
  107. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  108. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  109. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  110. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
  111. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  112. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  113. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  114. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  115. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/console/console.py +0 -0
  116. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dark_mode_button/__init__.py +0 -0
  117. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject +0 -0
  118. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +0 -0
  119. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +0 -0
  120. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/__init__.py +0 -0
  121. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/device_browser.py +0 -0
  122. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/device_browser.pyproject +0 -0
  123. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/device_browser.ui +0 -0
  124. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/device_browser_plugin.py +0 -0
  125. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/device_item/__init__.py +0 -0
  126. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/device_item/device_item.py +0 -0
  127. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_browser/register_device_browser.py +0 -0
  128. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
  129. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  130. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  131. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  132. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  133. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  134. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  135. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  136. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  137. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  138. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dock/__init__.py +0 -0
  139. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dock/dock.py +0 -0
  140. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dock/dock_area.py +0 -0
  141. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  142. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  143. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  144. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/__init__.py +0 -0
  145. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/figure.py +0 -0
  146. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  147. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  148. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  149. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  150. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  151. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  152. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  153. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  154. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  155. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  156. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  157. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  158. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/image/__init__.py +0 -0
  159. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  160. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  161. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/image/image_widget.py +0 -0
  162. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  163. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  164. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  165. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/__init__.py +0 -0
  166. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  167. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  168. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
  169. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  170. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  171. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  172. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  173. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/position_indicator/__init__.py +0 -0
  174. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  175. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  176. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  177. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  178. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/__init__.py +0 -0
  179. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  180. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
  181. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
  182. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
  183. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
  184. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
  185. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
  186. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  187. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
  188. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  189. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  190. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  191. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  192. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  193. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  194. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  195. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  196. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  197. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  198. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  199. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  200. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/spinner/__init__.py +0 -0
  201. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  202. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/spinner/spinner.py +0 -0
  203. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  204. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  205. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/stop_button/__init__.py +0 -0
  206. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  207. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  208. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  209. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  210. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/text_box/__init__.py +0 -0
  211. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  212. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/text_box/text_box.py +0 -0
  213. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  214. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  215. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/toggle/__init__.py +0 -0
  216. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  217. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/toggle/toggle.py +0 -0
  218. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  219. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  220. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/vscode/__init__.py +0 -0
  221. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  222. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  223. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  224. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/vscode/vscode.py +0 -0
  225. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/__init__.py +0 -0
  226. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  227. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  228. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  229. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
  230. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  231. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  232. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  233. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  234. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
  235. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  236. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  237. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/website/__init__.py +0 -0
  238. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  239. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/website/website.py +0 -0
  240. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  241. {bec_widgets-0.99.14 → bec_widgets-0.100.0}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
@@ -1,5 +1,27 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.100.0 (2024-09-01)
4
+
5
+ ### Documentation
6
+
7
+ * docs(becwidget): improvements to the bec widget base class docs; fixed type hint import for sphinx ([`99d5e8e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/99d5e8e71c7f89a53d7967126f4056dde005534c))
8
+
9
+ ### Feature
10
+
11
+ * feat(theme): added theme handler to bec widget base class; added tests ([`7fb938a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7fb938a8506685278ee5eeb6fe9a03f74b713cf8))
12
+
13
+ ### Fix
14
+
15
+ * fix(pyqt slot): removed slot decorator to avoid problems with pyqt6 ([`6c1f89a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6c1f89ad39b7240ab1d1c1123422b99ae195bf01))
16
+
17
+ ## v0.99.15 (2024-08-31)
18
+
19
+ ### Fix
20
+
21
+ * fix(theme): update pg axes on theme update ([`af23e74`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/af23e74f71152f4abc319ab7b45e65deefde3519))
22
+
23
+ * fix(positioner_box): fixed positioner box dialog; added test; closes #332 ([`0bf1cf9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0bf1cf9b8ab2f9171d5ff63d4e3672eb93e9a5fa))
24
+
3
25
  ## v0.99.14 (2024-08-30)
4
26
 
5
27
  ### Fix
@@ -129,29 +151,3 @@
129
151
  * fix(color maps): color maps should take the background color into account; fixed min colors to 10 ([`060935f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/060935ffc5472a958c337bf60834c5291f104ece))
130
152
 
131
153
  ## v0.99.2 (2024-08-27)
132
-
133
- ### Ci
134
-
135
- * ci: additional tests are not allowed to fail ([`bb385f0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/bb385f07ca18904461a541b5cadde05398c84438))
136
-
137
- ### Fix
138
-
139
- * fix(widgets): fixed default theme for widgets
140
-
141
- If not theme is set, the init of the BECWidget base class sets the default theme to "dark" ([`cf28730`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cf28730515e3c2d5914e0205768734c578711e5c))
142
-
143
- ## v0.99.1 (2024-08-27)
144
-
145
- ### Fix
146
-
147
- * fix(crosshair): emit all crosshair events, not just line coordinates ([`2265458`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2265458dcc57970db18c62619f5877d542d72e81))
148
-
149
- ## v0.99.0 (2024-08-25)
150
-
151
- ### Documentation
152
-
153
- * docs(darkmodebutton): added dark mode button docs ([`406c263`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/406c263746f0e809c1a4d98356c48f40428c23d7))
154
-
155
- ### Refactor
156
-
157
- * refactor(darkmodebutton): renamed set_dark_mode_enabled to toggle_dark_mode ([`c70724a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c70724a456900bcb06b040407a2c5d497e49ce77))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.99.14
3
+ Version: 0.100.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
@@ -1,4 +1,6 @@
1
1
  # pylint: disable=no-name-in-module
2
+ from __future__ import annotations
3
+
2
4
  import os
3
5
  from abc import ABC, abstractmethod
4
6
  from collections import defaultdict
@@ -0,0 +1,86 @@
1
+ from __future__ import annotations
2
+
3
+ from qtpy.QtCore import Slot
4
+ from qtpy.QtWidgets import QApplication, QWidget
5
+
6
+ from bec_widgets.utils.bec_connector import BECConnector, ConnectionConfig
7
+ from bec_widgets.utils.colors import set_theme
8
+
9
+
10
+ class BECWidget(BECConnector):
11
+ """Mixin class for all BEC widgets, to handle cleanup"""
12
+
13
+ # The icon name is the name of the icon in the icon theme, typically a name taken
14
+ # from fonts.google.com/icons. Override this in subclasses to set the icon name.
15
+ ICON_NAME = "widgets"
16
+
17
+ def __init__(
18
+ self,
19
+ client=None,
20
+ config: ConnectionConfig = None,
21
+ gui_id: str = None,
22
+ theme_update: bool = False,
23
+ ):
24
+ """
25
+ Base class for all BEC widgets. This class should be used as a mixin class for all BEC widgets, e.g.:
26
+
27
+
28
+ >>> class MyWidget(BECWidget, QWidget):
29
+ >>> def __init__(self, parent=None, client=None, config=None, gui_id=None):
30
+ >>> super().__init__(client=client, config=config, gui_id=gui_id)
31
+ >>> QWidget.__init__(self, parent=parent)
32
+
33
+
34
+ Args:
35
+ client(BECClient, optional): The BEC client.
36
+ config(ConnectionConfig, optional): The connection configuration.
37
+ gui_id(str, optional): The GUI ID.
38
+ theme_update(bool, optional): Whether to subscribe to theme updates. Defaults to False. When set to True, the
39
+ widget's apply_theme method will be called when the theme changes.
40
+ """
41
+ if not isinstance(self, QWidget):
42
+ raise RuntimeError(f"{repr(self)} is not a subclass of QWidget")
43
+ super().__init__(client, config, gui_id)
44
+
45
+ # Set the theme to auto if it is not set yet
46
+ app = QApplication.instance()
47
+ if not hasattr(app, "theme"):
48
+ set_theme("auto")
49
+
50
+ if theme_update:
51
+ self._connect_to_theme_change()
52
+
53
+ def _connect_to_theme_change(self):
54
+ """Connect to the theme change signal."""
55
+ qapp = QApplication.instance()
56
+ if hasattr(qapp, "theme_signal"):
57
+ qapp.theme_signal.theme_updated.connect(self._update_theme)
58
+
59
+ def _update_theme(self, theme: str):
60
+ """Update the theme."""
61
+ if theme is None:
62
+ qapp = QApplication.instance()
63
+ if hasattr(qapp, "theme"):
64
+ theme = qapp.theme["theme"]
65
+ else:
66
+ theme = "dark"
67
+ self.apply_theme(theme)
68
+
69
+ @Slot(str)
70
+ def apply_theme(self, theme: str):
71
+ """
72
+ Apply the theme to the widget.
73
+
74
+ Args:
75
+ theme(str, optional): The theme to be applied.
76
+ """
77
+
78
+ def cleanup(self):
79
+ """Cleanup the widget."""
80
+
81
+ def closeEvent(self, event):
82
+ self.rpc_register.remove_rpc(self)
83
+ try:
84
+ self.cleanup()
85
+ finally:
86
+ super().closeEvent(event)
@@ -19,6 +19,17 @@ def get_theme_palette():
19
19
  return bec_qthemes.load_palette(theme)
20
20
 
21
21
 
22
+ def _theme_update_callback():
23
+ """
24
+ Internal callback function to update the theme based on the system theme.
25
+ """
26
+ app = QApplication.instance()
27
+ # pylint: disable=protected-access
28
+ app.theme["theme"] = app.os_listener._theme.lower()
29
+ app.theme_signal.theme_updated.emit(app.theme["theme"])
30
+ apply_theme(app.os_listener._theme.lower())
31
+
32
+
22
33
  def set_theme(theme: Literal["dark", "light", "auto"]):
23
34
  """
24
35
  Set the theme for the application.
@@ -27,21 +38,17 @@ def set_theme(theme: Literal["dark", "light", "auto"]):
27
38
  theme (Literal["dark", "light", "auto"]): The theme to set. "auto" will automatically switch between dark and light themes based on the system theme.
28
39
  """
29
40
  app = QApplication.instance()
30
- bec_qthemes.setup_theme(theme)
31
- pg.setConfigOption("background", "w" if app.theme["theme"] == "light" else "k")
41
+ bec_qthemes.setup_theme(theme, install_event_filter=False)
42
+
43
+ app.theme_signal.theme_updated.emit(theme)
32
44
  apply_theme(theme)
33
45
 
34
- # pylint: disable=protected-access
35
46
  if theme != "auto":
36
47
  return
37
48
 
38
- def callback():
39
- app.theme["theme"] = listener._theme.lower()
40
- apply_theme(listener._theme.lower())
41
-
42
- listener = OSThemeSwitchListener(callback)
43
-
44
- app.installEventFilter(listener)
49
+ if not hasattr(app, "os_listener") or app.os_listener is None:
50
+ app.os_listener = OSThemeSwitchListener(_theme_update_callback)
51
+ app.installEventFilter(app.os_listener)
45
52
 
46
53
 
47
54
  def apply_theme(theme: Literal["dark", "light"]):
@@ -53,20 +60,12 @@ def apply_theme(theme: Literal["dark", "light"]):
53
60
  children = itertools.chain.from_iterable(
54
61
  top.findChildren(pg.GraphicsLayoutWidget) for top in app.topLevelWidgets()
55
62
  )
63
+ pg.setConfigOptions(
64
+ foreground="d" if theme == "dark" else "k", background="k" if theme == "dark" else "w"
65
+ )
56
66
  for pg_widget in children:
57
67
  pg_widget.setBackground("k" if theme == "dark" else "w")
58
68
 
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()
70
69
  # now define stylesheet according to theme and apply it
71
70
  style = bec_qthemes.load_stylesheet(theme)
72
71
  app.setStyleSheet(style)
@@ -1,3 +1,5 @@
1
+ from __future__ import annotations
2
+
1
3
  from bec_qthemes import material_icon
2
4
  from qtpy.QtCore import Property, Qt, Slot
3
5
  from qtpy.QtWidgets import QApplication, QHBoxLayout, QPushButton, QToolButton, QWidget
@@ -18,7 +20,7 @@ class DarkModeButton(BECWidget, QWidget):
18
20
  gui_id: str | None = None,
19
21
  toolbar: bool = False,
20
22
  ) -> None:
21
- super().__init__(client=client, gui_id=gui_id)
23
+ super().__init__(client=client, gui_id=gui_id, theme_update=True)
22
24
  QWidget.__init__(self, parent)
23
25
 
24
26
  self._dark_mode_enabled = False
@@ -39,6 +41,17 @@ class DarkModeButton(BECWidget, QWidget):
39
41
  self.setLayout(self.layout)
40
42
  self.setFixedSize(40, 40)
41
43
 
44
+ @Slot(str)
45
+ def apply_theme(self, theme: str):
46
+ """
47
+ Apply the theme to the widget.
48
+
49
+ Args:
50
+ theme(str, optional): The theme to be applied.
51
+ """
52
+ self.dark_mode_enabled = theme == "dark"
53
+ self.update_mode_button()
54
+
42
55
  def _get_qapp_dark_mode_state(self) -> bool:
43
56
  """
44
57
  Get the dark mode state from the QApplication.
@@ -2,10 +2,11 @@ from __future__ import annotations
2
2
 
3
3
  from typing import Literal, Optional
4
4
 
5
+ import bec_qthemes
5
6
  import pyqtgraph as pg
6
7
  from pydantic import BaseModel, Field
7
8
  from qtpy.QtCore import Signal, Slot
8
- from qtpy.QtWidgets import QWidget
9
+ from qtpy.QtWidgets import QApplication, QWidget
9
10
 
10
11
  from bec_widgets.utils import BECConnector, ConnectionConfig
11
12
  from bec_widgets.utils.crosshair import Crosshair
@@ -98,6 +99,38 @@ class BECPlotBase(BECConnector, pg.GraphicsLayout):
98
99
 
99
100
  self.add_legend()
100
101
  self.crosshair = None
102
+ self._connect_to_theme_change()
103
+
104
+ def _connect_to_theme_change(self):
105
+ """Connect to the theme change signal."""
106
+ qapp = QApplication.instance()
107
+ if hasattr(qapp, "theme_signal"):
108
+ qapp.theme_signal.theme_updated.connect(self._update_theme)
109
+
110
+ @Slot(str)
111
+ def _update_theme(self, theme: str):
112
+ """Update the theme."""
113
+ if theme is None:
114
+ qapp = QApplication.instance()
115
+ if hasattr(qapp, "theme"):
116
+ theme = qapp.theme["theme"]
117
+ else:
118
+ theme = "dark"
119
+ self.apply_theme(theme)
120
+
121
+ def apply_theme(self, theme: str):
122
+ """
123
+ Apply the theme to the plot widget.
124
+
125
+ Args:
126
+ theme(str, optional): The theme to be applied.
127
+ """
128
+ palette = bec_qthemes.load_palette(theme)
129
+ text_pen = pg.mkPen(color=palette.text().color())
130
+
131
+ for axis in ["left", "bottom", "right", "top"]:
132
+ self.plot_item.getAxis(axis).setPen(text_pen)
133
+ self.plot_item.getAxis(axis).setTextPen(text_pen)
101
134
 
102
135
  def set(self, **kwargs) -> None:
103
136
  """
@@ -46,6 +46,7 @@ class PositionerBox(BECWidget, QWidget):
46
46
  self.get_bec_shortcuts()
47
47
  self._device = ""
48
48
  self._limits = None
49
+ self._dialog = None
49
50
 
50
51
  self.init_ui()
51
52
 
@@ -87,17 +88,18 @@ class PositionerBox(BECWidget, QWidget):
87
88
 
88
89
  def _open_dialog_selection(self):
89
90
  """Open dialog window for positioner selection"""
90
- dialog = QDialog(self)
91
- dialog.setWindowTitle("Positioner Selection")
91
+ self._dialog = QDialog(self)
92
+ self._dialog.setWindowTitle("Positioner Selection")
92
93
  layout = QVBoxLayout()
93
94
  line_edit = DeviceLineEdit(self, client=self.client, device_filter="Positioner")
94
- line_edit.textChanged.connect(self._positioner_changed)
95
+ line_edit.textChanged.connect(self.set_positioner)
95
96
  layout.addWidget(line_edit)
96
97
  close_button = QPushButton("Close")
97
- close_button.clicked.connect(dialog.accept)
98
+ close_button.clicked.connect(self._dialog.accept)
98
99
  layout.addWidget(close_button)
99
- dialog.setLayout(layout)
100
- dialog.exec()
100
+ self._dialog.setLayout(layout)
101
+ self._dialog.exec()
102
+ self._dialog = None
101
103
 
102
104
  def init_device(self):
103
105
  """Init the device view and readback"""
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "0.99.14"
7
+ version = "0.100.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -1,32 +0,0 @@
1
- from qtpy.QtWidgets import QApplication, QWidget
2
-
3
- from bec_widgets.utils.bec_connector import BECConnector, ConnectionConfig
4
- from bec_widgets.utils.colors import set_theme
5
-
6
-
7
- class BECWidget(BECConnector):
8
- """Mixin class for all BEC widgets, to handle cleanup"""
9
-
10
- # The icon name is the name of the icon in the icon theme, typically a name taken
11
- # from fonts.google.com/icons. Override this in subclasses to set the icon name.
12
- ICON_NAME = "widgets"
13
-
14
- def __init__(self, client=None, config: ConnectionConfig = None, gui_id: str = None):
15
- if not isinstance(self, QWidget):
16
- raise RuntimeError(f"{repr(self)} is not a subclass of QWidget")
17
- super().__init__(client, config, gui_id)
18
-
19
- # Set the theme to auto if it is not set yet
20
- app = QApplication.instance()
21
- if not hasattr(app, "theme"):
22
- set_theme("dark")
23
-
24
- def cleanup(self):
25
- """Cleanup the widget."""
26
-
27
- def closeEvent(self, event):
28
- self.rpc_register.remove_rpc(self)
29
- try:
30
- self.cleanup()
31
- finally:
32
- super().closeEvent(event)
File without changes
File without changes
File without changes
File without changes