bec-widgets 0.94.6__tar.gz → 0.95.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 (428) hide show
  1. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/CHANGELOG.md +36 -40
  2. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/PKG-INFO +1 -1
  3. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/client.py +19 -0
  4. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/client_utils.py +1 -0
  5. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/server.py +5 -5
  6. bec_widgets-0.95.0/bec_widgets/widgets/device_browser/device_browser.py +107 -0
  7. bec_widgets-0.95.0/bec_widgets/widgets/device_browser/device_browser.pyproject +1 -0
  8. bec_widgets-0.95.0/bec_widgets/widgets/device_browser/device_browser.ui +44 -0
  9. bec_widgets-0.95.0/bec_widgets/widgets/device_browser/device_browser_plugin.py +54 -0
  10. bec_widgets-0.95.0/bec_widgets/widgets/device_browser/device_item/__init__.py +1 -0
  11. bec_widgets-0.95.0/bec_widgets/widgets/device_browser/device_item/device_item.py +53 -0
  12. bec_widgets-0.95.0/bec_widgets/widgets/device_browser/register_device_browser.py +15 -0
  13. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/_static/custom.css +10 -10
  14. bec_widgets-0.95.0/docs/assets/widget_screenshots/buttons.png +0 -0
  15. bec_widgets-0.95.0/docs/assets/widget_screenshots/device_box.png +0 -0
  16. bec_widgets-0.95.0/docs/assets/widget_screenshots/device_browser.png +0 -0
  17. bec_widgets-0.95.0/docs/assets/widget_screenshots/device_inputs.png +0 -0
  18. bec_widgets-0.95.0/docs/assets/widget_screenshots/dock_area.png +0 -0
  19. bec_widgets-0.95.0/docs/assets/widget_screenshots/figure.png +0 -0
  20. bec_widgets-0.95.0/docs/assets/widget_screenshots/image_widget.png +0 -0
  21. bec_widgets-0.95.0/docs/assets/widget_screenshots/motor_map_widget.png +0 -0
  22. bec_widgets-0.95.0/docs/assets/widget_screenshots/position_indicator.png +0 -0
  23. bec_widgets-0.95.0/docs/assets/widget_screenshots/queue.png +0 -0
  24. bec_widgets-0.95.0/docs/assets/widget_screenshots/ring_progress_bar.png +0 -0
  25. bec_widgets-0.95.0/docs/assets/widget_screenshots/scan_controller.png +0 -0
  26. bec_widgets-0.95.0/docs/assets/widget_screenshots/spinner.gif +0 -0
  27. bec_widgets-0.95.0/docs/assets/widget_screenshots/status_box.png +0 -0
  28. bec_widgets-0.95.0/docs/assets/widget_screenshots/text_box.png +0 -0
  29. bec_widgets-0.95.0/docs/assets/widget_screenshots/toggle.png +0 -0
  30. bec_widgets-0.95.0/docs/assets/widget_screenshots/waveform_widget.png +0 -0
  31. bec_widgets-0.95.0/docs/assets/widget_screenshots/website.png +0 -0
  32. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/conf.py +1 -0
  33. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/developer/developer.md +2 -0
  34. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/index.md +4 -0
  35. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/requirements.txt +1 -0
  36. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/user.md +4 -0
  37. bec_widgets-0.95.0/docs/user/widgets/bec_figure/bec_figure.md +105 -0
  38. bec_widgets-0.95.0/docs/user/widgets/bec_status_box/bec_status_box.md +38 -0
  39. bec_widgets-0.95.0/docs/user/widgets/buttons/buttons.md +50 -0
  40. bec_widgets-0.95.0/docs/user/widgets/device_browser/device_browser.md +36 -0
  41. bec_widgets-0.95.0/docs/user/widgets/device_browser/device_browser.png +0 -0
  42. bec_widgets-0.95.0/docs/user/widgets/device_input/device_input.md +100 -0
  43. bec_widgets-0.95.0/docs/user/widgets/dock_area/BECDockArea.png +0 -0
  44. bec_widgets-0.95.0/docs/user/widgets/dock_area/bec_dock_area.md +107 -0
  45. bec_widgets-0.95.0/docs/user/widgets/image/image_widget.md +84 -0
  46. bec_widgets-0.95.0/docs/user/widgets/motor_map/motor_map.md +80 -0
  47. bec_widgets-0.95.0/docs/user/widgets/position_indicator/position_indicator.md +76 -0
  48. bec_widgets-0.95.0/docs/user/widgets/positioner_box/positioner_box.md +63 -0
  49. bec_widgets-0.95.0/docs/user/widgets/progress_bar/ring_progress_bar.md +103 -0
  50. bec_widgets-0.95.0/docs/user/widgets/queue/queue.md +41 -0
  51. bec_widgets-0.95.0/docs/user/widgets/scan_control/scan_control.md +46 -0
  52. bec_widgets-0.95.0/docs/user/widgets/spinner/spinner.md +75 -0
  53. bec_widgets-0.95.0/docs/user/widgets/text_box/text_box.md +74 -0
  54. bec_widgets-0.95.0/docs/user/widgets/toggle/toggle.md +66 -0
  55. bec_widgets-0.95.0/docs/user/widgets/waveform/waveform_widget.md +132 -0
  56. bec_widgets-0.95.0/docs/user/widgets/website/website.md +69 -0
  57. bec_widgets-0.95.0/docs/user/widgets/widgets.md +220 -0
  58. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/pyproject.toml +1 -1
  59. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/client_mocks.py +14 -0
  60. bec_widgets-0.95.0/tests/unit_tests/test_device_browser.py +83 -0
  61. bec_widgets-0.95.0/tests/unit_tests/test_msgs/__init__.py +0 -0
  62. bec_widgets-0.94.6/docs/user/widgets/bec_figure.md +0 -146
  63. bec_widgets-0.94.6/docs/user/widgets/bec_status_box.md +0 -30
  64. bec_widgets-0.94.6/docs/user/widgets/buttons.md +0 -37
  65. bec_widgets-0.94.6/docs/user/widgets/ring_progress_bar.md +0 -54
  66. bec_widgets-0.94.6/docs/user/widgets/scan_control.md +0 -35
  67. bec_widgets-0.94.6/docs/user/widgets/text_box.md +0 -33
  68. bec_widgets-0.94.6/docs/user/widgets/website.md +0 -21
  69. bec_widgets-0.94.6/docs/user/widgets/widgets.md +0 -20
  70. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.git_hooks/pre-commit +0 -0
  71. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.gitignore +0 -0
  72. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  73. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  74. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  75. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.gitlab/merge_request_templates/default.md +0 -0
  76. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.gitlab-ci.yml +0 -0
  77. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.pylintrc +0 -0
  78. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/.readthedocs.yaml +0 -0
  79. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/LICENSE +0 -0
  80. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/README.md +0 -0
  81. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/__init__.py +0 -0
  82. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
  83. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  84. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/app_icons/terminal_icon.png +0 -0
  85. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/code.png +0 -0
  86. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/color_button.png +0 -0
  87. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/colormap_selector.png +0 -0
  88. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/device_combo_box.png +0 -0
  89. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/device_line_edit.png +0 -0
  90. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/dock_area.png +0 -0
  91. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/games.png +0 -0
  92. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/image.png +0 -0
  93. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/motor_map.png +0 -0
  94. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/position_indicator.png +0 -0
  95. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/positioner_box.png +0 -0
  96. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/queue.png +0 -0
  97. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/ring_progress.png +0 -0
  98. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/scan_control.png +0 -0
  99. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/spinner.png +0 -0
  100. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/status.png +0 -0
  101. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/stop.png +0 -0
  102. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/text.png +0 -0
  103. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/toggle.png +0 -0
  104. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/waveform.png +0 -0
  105. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/designer_icons/web.png +0 -0
  106. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/status_icons/error.svg +0 -0
  107. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/status_icons/not_connected.svg +0 -0
  108. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/status_icons/refresh.svg +0 -0
  109. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/status_icons/running.svg +0 -0
  110. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/status_icons/warning.svg +0 -0
  111. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/add.svg +0 -0
  112. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/attach_all.svg +0 -0
  113. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/auto_range.svg +0 -0
  114. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/compare.svg +0 -0
  115. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/connection.svg +0 -0
  116. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/device_line_edit.svg +0 -0
  117. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/drag_pan_mode.svg +0 -0
  118. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/export.svg +0 -0
  119. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/fft.svg +0 -0
  120. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/fitting_parameters.svg +0 -0
  121. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/history.svg +0 -0
  122. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/image.svg +0 -0
  123. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/image_autorange.svg +0 -0
  124. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/import.svg +0 -0
  125. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/line_axis.svg +0 -0
  126. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/line_curve.svg +0 -0
  127. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/lock_aspect_ratio.svg +0 -0
  128. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/log_scale.png +0 -0
  129. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/motor_map.svg +0 -0
  130. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/photo_library.svg +0 -0
  131. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/positioner_box.svg +0 -0
  132. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/progress.svg +0 -0
  133. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/queue.svg +0 -0
  134. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/rectangle_mode.svg +0 -0
  135. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/remove.svg +0 -0
  136. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/reset_settings.svg +0 -0
  137. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/restore_state.svg +0 -0
  138. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/ring_progress.svg +0 -0
  139. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/rotate_left.svg +0 -0
  140. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/rotate_right.svg +0 -0
  141. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/save.svg +0 -0
  142. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/save_state.svg +0 -0
  143. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/scan_control.svg +0 -0
  144. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/settings.svg +0 -0
  145. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/status.svg +0 -0
  146. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/terminal.svg +0 -0
  147. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/transform.svg +0 -0
  148. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/assets/toolbar_icons/waveform.svg +0 -0
  149. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/__init__.py +0 -0
  150. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/auto_updates.py +0 -0
  151. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/generate_cli.py +0 -0
  152. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/rpc_register.py +0 -0
  153. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  154. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/__init__.py +0 -0
  155. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  156. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  157. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  158. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  159. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  160. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  161. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  162. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  163. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  164. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  165. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  166. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  167. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  168. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/qt_utils/__init__.py +0 -0
  169. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  170. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  171. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  172. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/qt_utils/toolbar.py +0 -0
  173. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/__init__.py +0 -0
  174. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/bec_connector.py +0 -0
  175. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/bec_designer.py +0 -0
  176. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  177. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/bec_table.py +0 -0
  178. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/bec_widget.py +0 -0
  179. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/colors.py +0 -0
  180. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/container_utils.py +0 -0
  181. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/crosshair.py +0 -0
  182. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/entry_validator.py +0 -0
  183. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  184. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/layout_manager.py +0 -0
  185. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  186. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  187. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/plugin_utils.py +0 -0
  188. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/reference_utils.py +0 -0
  189. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  190. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/thread_checker.py +0 -0
  191. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/ui_loader.py +0 -0
  192. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/validator_delegate.py +0 -0
  193. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/widget_io.py +0 -0
  194. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  195. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/__init__.py +0 -0
  196. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  197. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  198. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  199. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  200. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  201. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  202. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  203. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  204. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  205. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  206. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  207. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  208. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  209. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/color_button/__init__.py +0 -0
  210. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/color_button/color_button.py +0 -0
  211. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  212. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  213. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  214. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
  215. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  216. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  217. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  218. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  219. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/console/console.py +0 -0
  220. {bec_widgets-0.94.6/bec_widgets/widgets/device_combobox → bec_widgets-0.95.0/bec_widgets/widgets/device_browser}/__init__.py +0 -0
  221. {bec_widgets-0.94.6/bec_widgets/widgets/device_line_edit → bec_widgets-0.95.0/bec_widgets/widgets/device_combobox}/__init__.py +0 -0
  222. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  223. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  224. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  225. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  226. {bec_widgets-0.94.6/bec_widgets/widgets/figure/plots → bec_widgets-0.95.0/bec_widgets/widgets/device_line_edit}/__init__.py +0 -0
  227. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  228. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  229. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  230. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  231. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/dock/__init__.py +0 -0
  232. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/dock/dock.py +0 -0
  233. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/dock/dock_area.py +0 -0
  234. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  235. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  236. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  237. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/__init__.py +0 -0
  238. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/figure.py +0 -0
  239. {bec_widgets-0.94.6/bec_widgets/widgets/figure/plots/image → bec_widgets-0.95.0/bec_widgets/widgets/figure/plots}/__init__.py +0 -0
  240. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  241. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  242. {bec_widgets-0.94.6/bec_widgets/widgets/figure/plots/motor_map → bec_widgets-0.95.0/bec_widgets/widgets/figure/plots/image}/__init__.py +0 -0
  243. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  244. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  245. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  246. {bec_widgets-0.94.6/bec_widgets/widgets/figure/plots/waveform → bec_widgets-0.95.0/bec_widgets/widgets/figure/plots/motor_map}/__init__.py +0 -0
  247. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  248. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/plot_base.py +0 -0
  249. {bec_widgets-0.94.6/bec_widgets/widgets/image → bec_widgets-0.95.0/bec_widgets/widgets/figure/plots/waveform}/__init__.py +0 -0
  250. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  251. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  252. {bec_widgets-0.94.6/bec_widgets/widgets/jupyter_console → bec_widgets-0.95.0/bec_widgets/widgets/image}/__init__.py +0 -0
  253. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  254. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  255. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/image/image_widget.py +0 -0
  256. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  257. {bec_widgets-0.94.6/bec_widgets/widgets/motor_map → bec_widgets-0.95.0/bec_widgets/widgets/jupyter_console}/__init__.py +0 -0
  258. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  259. {bec_widgets-0.94.6/bec_widgets/widgets/motor_map/motor_map_dialog → bec_widgets-0.95.0/bec_widgets/widgets/motor_map}/__init__.py +0 -0
  260. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  261. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  262. {bec_widgets-0.94.6/bec_widgets/widgets/position_indicator → bec_widgets-0.95.0/bec_widgets/widgets/motor_map/motor_map_dialog}/__init__.py +0 -0
  263. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  264. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  265. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  266. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  267. {bec_widgets-0.94.6/bec_widgets/widgets/positioner_box → bec_widgets-0.95.0/bec_widgets/widgets/position_indicator}/__init__.py +0 -0
  268. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  269. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  270. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  271. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  272. {bec_widgets-0.94.6/bec_widgets/widgets/spinner → bec_widgets-0.95.0/bec_widgets/widgets/positioner_box}/__init__.py +0 -0
  273. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_box.py +0 -0
  274. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  275. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
  276. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
  277. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
  278. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
  279. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
  280. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
  281. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  282. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
  283. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  284. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  285. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  286. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  287. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  288. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  289. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  290. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  291. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  292. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  293. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  294. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/scan_control/scan_group_box.py +0 -0
  295. {bec_widgets-0.94.6/bec_widgets/widgets/stop_button → bec_widgets-0.95.0/bec_widgets/widgets/spinner}/__init__.py +0 -0
  296. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  297. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/spinner/spinner.py +0 -0
  298. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  299. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  300. {bec_widgets-0.94.6/bec_widgets/widgets/text_box → bec_widgets-0.95.0/bec_widgets/widgets/stop_button}/__init__.py +0 -0
  301. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  302. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  303. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  304. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  305. {bec_widgets-0.94.6/bec_widgets/widgets/toggle → bec_widgets-0.95.0/bec_widgets/widgets/text_box}/__init__.py +0 -0
  306. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  307. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/text_box/text_box.py +0 -0
  308. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  309. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  310. {bec_widgets-0.94.6/bec_widgets/widgets/vscode → bec_widgets-0.95.0/bec_widgets/widgets/toggle}/__init__.py +0 -0
  311. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  312. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/toggle/toggle.py +0 -0
  313. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  314. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  315. {bec_widgets-0.94.6/bec_widgets/widgets/waveform → bec_widgets-0.95.0/bec_widgets/widgets/vscode}/__init__.py +0 -0
  316. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  317. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  318. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  319. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/vscode/vscode.py +0 -0
  320. {bec_widgets-0.94.6/bec_widgets/widgets/waveform/waveform_popups → bec_widgets-0.95.0/bec_widgets/widgets/waveform}/__init__.py +0 -0
  321. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  322. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  323. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  324. {bec_widgets-0.94.6/bec_widgets/widgets/waveform/waveform_popups/curve_dialog → bec_widgets-0.95.0/bec_widgets/widgets/waveform/waveform_popups}/__init__.py +0 -0
  325. {bec_widgets-0.94.6/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog → bec_widgets-0.95.0/bec_widgets/widgets/waveform/waveform_popups/curve_dialog}/__init__.py +0 -0
  326. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  327. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  328. {bec_widgets-0.94.6/bec_widgets/widgets/website → bec_widgets-0.95.0/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog}/__init__.py +0 -0
  329. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary.ui +0 -0
  330. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  331. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  332. {bec_widgets-0.94.6/tests → bec_widgets-0.95.0/bec_widgets/widgets/website}/__init__.py +0 -0
  333. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  334. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/website/website.py +0 -0
  335. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  336. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
  337. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/Makefile +0 -0
  338. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/_templates/custom-class-template.rst +0 -0
  339. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/_templates/custom-module-template.rst +0 -0
  340. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/api_reference/api_reference.md +0 -0
  341. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/assets/apps_48dp.svg +0 -0
  342. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/assets/display_settings_48dp.svg +0 -0
  343. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/assets/index_api.svg +0 -0
  344. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/assets/index_contribute.svg +0 -0
  345. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/assets/index_getting_started.svg +0 -0
  346. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/assets/index_user_guide.svg +0 -0
  347. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/assets/rocket_launch_48dp.svg +0 -0
  348. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/developer/introduction/concepts.md +0 -0
  349. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/developer/introduction/contributing.md +0 -0
  350. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/developer/introduction/introduction.md +0 -0
  351. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/developer/widget_development/widget_development.md +0 -0
  352. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/introduction/introduction.md +0 -0
  353. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/make.bat +0 -0
  354. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/api_reference/api_reference.md +0 -0
  355. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/applications/applications.md +0 -0
  356. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/customisation.md +0 -0
  357. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/getting_started/BECDockArea.png +0 -0
  358. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/getting_started/auto_updates.md +0 -0
  359. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/getting_started/getting_started.md +0 -0
  360. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/getting_started/gui_complex_gui.gif +0 -0
  361. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/getting_started/installation.md +0 -0
  362. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/getting_started/quick_start.md +0 -0
  363. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/docs/user/getting_started/video_tutorials.md +0 -0
  364. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/bec_figure}/BECFigure.png +0 -0
  365. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/bec_status_box}/bec_status_box.gif +0 -0
  366. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/image}/image_plot.gif +0 -0
  367. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/motor_map}/motor.gif +0 -0
  368. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/progress_bar}/progress_bar.gif +0 -0
  369. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/scan_control}/scan_control.gif +0 -0
  370. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/waveform}/bec_figure_dap.gif +0 -0
  371. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/waveform}/scatter_2D.gif +0 -0
  372. {bec_widgets-0.94.6/docs/user/widgets → bec_widgets-0.95.0/docs/user/widgets/waveform}/w1D.gif +0 -0
  373. {bec_widgets-0.94.6/tests/end-2-end → bec_widgets-0.95.0/tests}/__init__.py +0 -0
  374. {bec_widgets-0.94.6/tests/unit_tests → bec_widgets-0.95.0/tests/end-2-end}/__init__.py +0 -0
  375. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/end-2-end/conftest.py +0 -0
  376. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/end-2-end/test_bec_dock_rpc_e2e.py +0 -0
  377. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/end-2-end/test_bec_figure_rpc_e2e.py +0 -0
  378. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/end-2-end/test_rpc_register_e2e.py +0 -0
  379. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/end-2-end/test_scan_control_e2e.py +0 -0
  380. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/references/SpinnerWidget/SpinnerWidget_darwin.png +0 -0
  381. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/references/SpinnerWidget/SpinnerWidget_linux.png +0 -0
  382. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png +0 -0
  383. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/references/SpinnerWidget/SpinnerWidget_started_linux.png +0 -0
  384. {bec_widgets-0.94.6/tests/unit_tests/test_msgs → bec_widgets-0.95.0/tests/unit_tests}/__init__.py +0 -0
  385. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/conftest.py +0 -0
  386. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_connector.py +0 -0
  387. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_dispatcher.py +0 -0
  388. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_dock.py +0 -0
  389. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_figure.py +0 -0
  390. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_image.py +0 -0
  391. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_image_widget.py +0 -0
  392. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_motor_map.py +0 -0
  393. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_queue.py +0 -0
  394. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_bec_status_box.py +0 -0
  395. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_client_utils.py +0 -0
  396. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_color_map_selector.py +0 -0
  397. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_color_validation.py +0 -0
  398. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_configs/config_device.yaml +0 -0
  399. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_configs/config_device_no_entry.yaml +0 -0
  400. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_configs/config_scan.yaml +0 -0
  401. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_crosshair.py +0 -0
  402. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_device_input_base.py +0 -0
  403. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_device_input_widgets.py +0 -0
  404. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_error_utils.py +0 -0
  405. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_generate_cli_client.py +0 -0
  406. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_generate_plugin.py +0 -0
  407. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_motor_map_widget.py +0 -0
  408. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_msgs/available_scans_message.py +0 -0
  409. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_plot_base.py +0 -0
  410. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_plugin_utils.py +0 -0
  411. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_positioner_box.py +0 -0
  412. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_ring_progress_bar.py +0 -0
  413. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_rpc_register.py +0 -0
  414. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_rpc_server.py +0 -0
  415. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_rpc_widget_handler.py +0 -0
  416. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_scan_control.py +0 -0
  417. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_scan_control_group_box.py +0 -0
  418. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_setting_dialog.py +0 -0
  419. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_spinner.py +0 -0
  420. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_stop_button.py +0 -0
  421. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_text_box_widget.py +0 -0
  422. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_toggle.py +0 -0
  423. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_vscode_widget.py +0 -0
  424. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_waveform1d.py +0 -0
  425. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_waveform_widget.py +0 -0
  426. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_website_widget.py +0 -0
  427. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_widget_io.py +0 -0
  428. {bec_widgets-0.94.6 → bec_widgets-0.95.0}/tests/unit_tests/test_yaml_dialog.py +0 -0
@@ -1,5 +1,41 @@
1
1
  # CHANGELOG
2
2
 
3
+ ## v0.95.0 (2024-08-21)
4
+
5
+ ### Documentation
6
+
7
+ * docs(device_browser): added user docs ([`2c31cc9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2c31cc90ae751f14a653cbbdd6c353d6359aaafe))
8
+
9
+ * docs(user): widget gallery with documentation added ([`7357f3d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7357f3d2a189f9f04954a027f39ce07c394d57ec))
10
+
11
+ * docs: added sphinx-inline-tabs as sphinx dependency ([`e9ecd26`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e9ecd268c602ea9572df0e8d508e49ee62d0c170))
12
+
13
+ * docs(cards): changed index cards to custom css class instead of overwriting the default sd-card theme ([`91ba30e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/91ba30e8d054a9c7f6c6d98b21113a5d0b1bbbbb))
14
+
15
+ ### Feature
16
+
17
+ * feat(cli): added device_browser to cli ([`196504b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/196504b533367a899c19b88af4ccd5b39dc46aac))
18
+
19
+ * feat(widgets): added device_browser widget ([`73f5a2f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/73f5a2f085b289ac18fa8a918b6ad7cfed595fb4))
20
+
21
+ ### Fix
22
+
23
+ * fix(device_browser): fixed plugin assignment for designer ([`6500393`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/650039303aae9bbec62c676285938416fff146ce))
24
+
25
+ ### Refactor
26
+
27
+ * refactor(docs): review response ([`4790afd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4790afde3d61fc9beb073c2775c339d4f80779e3))
28
+
29
+ ### Test
30
+
31
+ * test: added test for device browser ([`e870e5b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e870e5ba083c61df581c9c0305adabe72967f997))
32
+
33
+ ## v0.94.7 (2024-08-20)
34
+
35
+ ### Fix
36
+
37
+ * fix: formatting of stdout, stderr captured text for logger ([`939f834`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/939f834a26ddbac0bdead0b60b1cdf52014f182f))
38
+
3
39
  ## v0.94.6 (2024-08-14)
4
40
 
5
41
  ### Fix
@@ -115,43 +151,3 @@ Terminating client connections has to be done at the application level ([`198c1d
115
151
  * test: ensure all toplevelwidgets are closed ([`f9e5897`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f9e58979009cf632feea529700ad191401dd7eb8))
116
152
 
117
153
  ## v0.93.2 (2024-08-07)
118
-
119
- ### Fix
120
-
121
- * fix(scan_group_box): Scan Spinboxes limits increased to max allowed values; setting dialog for step size and decimal precision for ScanDoubleSpinBox on right click ([`a372925`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a372925fffa787c686198ae7cb3f9c15b459c109))
122
-
123
- ## v0.93.1 (2024-08-06)
124
-
125
- ### Documentation
126
-
127
- * docs: added video tutorial section with BSEG YT video ([`302ae90`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/302ae90139f6a88e2401fe29fe312387486e27a9))
128
-
129
- ### Fix
130
-
131
- * fix(dock): docks have more recognizable red icon for closing docks ([`af86860`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/af86860bf35474805fb1a7bc3725cf8835ed4cc7))
132
-
133
- ## v0.93.0 (2024-08-05)
134
-
135
- ### Feature
136
-
137
- * feat(themes): moved themes to bec_qthemes
138
-
139
- This reverts commit fd6ae91993a23a7b8dbb2cf3c4b7c3eda6d2b0f6 ([`5aad401`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5aad401ef8774c7330784f72cd3b9d8c253e2b6a))
140
-
141
- ## v0.92.5 (2024-08-05)
142
-
143
- ### Fix
144
-
145
- * fix(spinner): stop timer on close event ([`30fef92`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/30fef929cf6fb4b73f48151c92a0ee54c734031d))
146
-
147
- * fix(status_box): fix cleanup of status box ([`1f30dd7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f30dd73a9c1e3135087a5eef92c7329f54a604e))
148
-
149
- ### Refactor
150
-
151
- * refactor(queue): refactored bec queue to inherit only from qwidget ([`7616ca0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7616ca0e145e233ccb48029a8c0b54b54b5b4194))
152
-
153
- ### Test
154
-
155
- * test: register all widgets with qtbot and close them ([`73cd11e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/73cd11e47277e4437554b785a9551b28a572094f))
156
-
157
- ## v0.92.4 (2024-07-31)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 0.94.6
3
+ Version: 0.95.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
@@ -21,6 +21,7 @@ class Widgets(str, enum.Enum):
21
21
  BECQueue = "BECQueue"
22
22
  BECStatusBox = "BECStatusBox"
23
23
  BECWaveformWidget = "BECWaveformWidget"
24
+ DeviceBrowser = "DeviceBrowser"
24
25
  DeviceComboBox = "DeviceComboBox"
25
26
  DeviceLineEdit = "DeviceLineEdit"
26
27
  PositionerBox = "PositionerBox"
@@ -2288,6 +2289,24 @@ class BECWaveformWidget(RPCBase):
2288
2289
  """
2289
2290
 
2290
2291
 
2292
+ class DeviceBrowser(RPCBase):
2293
+ @property
2294
+ @rpc_call
2295
+ def _config_dict(self) -> "dict":
2296
+ """
2297
+ Get the configuration of the widget.
2298
+
2299
+ Returns:
2300
+ dict: The configuration of the widget.
2301
+ """
2302
+
2303
+ @rpc_call
2304
+ def _get_all_rpc(self) -> "dict":
2305
+ """
2306
+ Get all registered RPC objects.
2307
+ """
2308
+
2309
+
2291
2310
  class DeviceComboBox(RPCBase):
2292
2311
  @property
2293
2312
  @rpc_call
@@ -100,6 +100,7 @@ def _start_plot_process(gui_id: str, gui_class: type, config: dict | str, logger
100
100
 
101
101
  env_dict = os.environ.copy()
102
102
  env_dict["PYTHONUNBUFFERED"] = "1"
103
+
103
104
  if logger is None:
104
105
  stdout_redirect = subprocess.DEVNULL
105
106
  stderr_redirect = subprocess.DEVNULL
@@ -130,15 +130,15 @@ class BECWidgetsCLIServer:
130
130
  class SimpleFileLikeFromLogOutputFunc:
131
131
  def __init__(self, log_func):
132
132
  self._log_func = log_func
133
+ self._buffer = []
133
134
 
134
135
  def write(self, buffer):
135
- for line in buffer.rstrip().splitlines():
136
- line = line.rstrip()
137
- if line:
138
- self._log_func(line)
136
+ self._buffer.append(buffer)
139
137
 
140
138
  def flush(self):
141
- return
139
+ lines, _, remaining = "".join(self._buffer).rpartition("\n")
140
+ self._log_func(lines)
141
+ self._buffer = [remaining]
142
142
 
143
143
  def close(self):
144
144
  return
@@ -0,0 +1,107 @@
1
+ import os
2
+ import re
3
+ from typing import Optional
4
+
5
+ from bec_lib.callback_handler import EventType
6
+ from pyqtgraph import SignalProxy
7
+ from qtpy.QtCore import Signal, Slot
8
+ from qtpy.QtWidgets import QLineEdit, QListWidgetItem, QVBoxLayout, QWidget
9
+
10
+ from bec_widgets.utils.bec_widget import BECWidget
11
+ from bec_widgets.utils.ui_loader import UILoader
12
+ from bec_widgets.widgets.device_browser.device_item import DeviceItem
13
+
14
+
15
+ class DeviceBrowser(BECWidget, QWidget):
16
+ device_update: Signal = Signal()
17
+
18
+ def __init__(
19
+ self,
20
+ parent: Optional[QWidget] = None,
21
+ config=None,
22
+ client=None,
23
+ gui_id: Optional[str] = None,
24
+ ) -> None:
25
+ super().__init__(client=client, config=config, gui_id=gui_id)
26
+ QWidget.__init__(self, parent)
27
+
28
+ self.get_bec_shortcuts()
29
+ self.ui = None
30
+ self.ini_ui()
31
+
32
+ self.proxy_device_update = SignalProxy(
33
+ self.ui.filter_input.textChanged, rateLimit=500, slot=self.update_device_list
34
+ )
35
+ self.bec_dispatcher.client.callbacks.register(
36
+ EventType.DEVICE_UPDATE, self.on_device_update
37
+ )
38
+ self.device_update.connect(self.update_device_list)
39
+
40
+ self.update_device_list()
41
+
42
+ def ini_ui(self) -> None:
43
+ """
44
+ Initialize the UI by loading the UI file and setting the layout.
45
+ """
46
+ layout = QVBoxLayout()
47
+ layout.setContentsMargins(0, 0, 0, 0)
48
+
49
+ ui_file_path = os.path.join(os.path.dirname(__file__), "device_browser.ui")
50
+ self.ui = UILoader(self).loader(ui_file_path)
51
+ layout.addWidget(self.ui)
52
+ self.setLayout(layout)
53
+
54
+ def on_device_update(self, action: str, content: dict) -> None:
55
+ """
56
+ Callback for device update events. Triggers the device_update signal.
57
+
58
+ Args:
59
+ action (str): The action that triggered the event.
60
+ content (dict): The content of the config update.
61
+ """
62
+ if action in ["add", "remove", "reload"]:
63
+ self.device_update.emit()
64
+
65
+ @Slot()
66
+ def update_device_list(self) -> None:
67
+ """
68
+ Update the device list based on the filter input.
69
+ There are two ways to trigger this function:
70
+ 1. By changing the text in the filter input.
71
+ 2. By emitting the device_update signal.
72
+
73
+ Either way, the function will filter the devices based on the filter input text and update the device list.
74
+ """
75
+ filter_text = self.ui.filter_input.text()
76
+ try:
77
+ regex = re.compile(filter_text, re.IGNORECASE)
78
+ except re.error:
79
+ regex = None # Invalid regex, disable filtering
80
+
81
+ dev_list = self.ui.device_list
82
+ dev_list.clear()
83
+ for device in self.dev:
84
+ if regex is None or regex.search(device):
85
+ item = QListWidgetItem(dev_list)
86
+ device_item = DeviceItem(device)
87
+
88
+ # pylint: disable=protected-access
89
+ tooltip = self.dev[device]._config.get("description", "")
90
+ device_item.setToolTip(tooltip)
91
+ item.setSizeHint(device_item.sizeHint())
92
+ dev_list.setItemWidget(item, device_item)
93
+ dev_list.addItem(item)
94
+
95
+
96
+ if __name__ == "__main__": # pragma: no cover
97
+ import sys
98
+
99
+ from qtpy.QtWidgets import QApplication
100
+
101
+ from bec_widgets.utils.colors import apply_theme
102
+
103
+ app = QApplication(sys.argv)
104
+ apply_theme("light")
105
+ widget = DeviceBrowser()
106
+ widget.show()
107
+ sys.exit(app.exec_())
@@ -0,0 +1 @@
1
+ {'files': ['device_browser.py']}
@@ -0,0 +1,44 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <ui version="4.0">
3
+ <class>Form</class>
4
+ <widget class="QWidget" name="Form">
5
+ <property name="geometry">
6
+ <rect>
7
+ <x>0</x>
8
+ <y>0</y>
9
+ <width>406</width>
10
+ <height>500</height>
11
+ </rect>
12
+ </property>
13
+ <property name="windowTitle">
14
+ <string>Form</string>
15
+ </property>
16
+ <layout class="QVBoxLayout" name="verticalLayout">
17
+ <item>
18
+ <widget class="QGroupBox" name="browser_group_box">
19
+ <property name="title">
20
+ <string>Device Browser</string>
21
+ </property>
22
+ <layout class="QVBoxLayout" name="verticalLayout_2">
23
+ <item>
24
+ <layout class="QHBoxLayout" name="filter_layout">
25
+ <item>
26
+ <widget class="QLineEdit" name="filter_input">
27
+ <property name="placeholderText">
28
+ <string>Filter</string>
29
+ </property>
30
+ </widget>
31
+ </item>
32
+ </layout>
33
+ </item>
34
+ <item>
35
+ <widget class="QListWidget" name="device_list"/>
36
+ </item>
37
+ </layout>
38
+ </widget>
39
+ </item>
40
+ </layout>
41
+ </widget>
42
+ <resources/>
43
+ <connections/>
44
+ </ui>
@@ -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
+ from qtpy.QtGui import QIcon
6
+
7
+ from bec_widgets.widgets.device_browser.device_browser import DeviceBrowser
8
+
9
+ DOM_XML = """
10
+ <ui language='c++'>
11
+ <widget class='DeviceBrowser' name='device_browser'>
12
+ </widget>
13
+ </ui>
14
+ """
15
+
16
+
17
+ class DeviceBrowserPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
18
+ def __init__(self):
19
+ super().__init__()
20
+ self._form_editor = None
21
+
22
+ def createWidget(self, parent):
23
+ t = DeviceBrowser(parent)
24
+ return t
25
+
26
+ def domXml(self):
27
+ return DOM_XML
28
+
29
+ def group(self):
30
+ return "BEC Services"
31
+
32
+ def icon(self):
33
+ return QIcon()
34
+
35
+ def includeFile(self):
36
+ return "device_browser"
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 "DeviceBrowser"
49
+
50
+ def toolTip(self):
51
+ return "DeviceBrowser"
52
+
53
+ def whatsThis(self):
54
+ return self.toolTip()
@@ -0,0 +1 @@
1
+ from .device_item import DeviceItem
@@ -0,0 +1,53 @@
1
+ from __future__ import annotations
2
+
3
+ from typing import TYPE_CHECKING
4
+
5
+ from qtpy.QtCore import QMimeData, Qt
6
+ from qtpy.QtGui import QDrag
7
+ from qtpy.QtWidgets import QHBoxLayout, QLabel, QWidget
8
+
9
+ if TYPE_CHECKING:
10
+ from qtpy.QtGui import QMouseEvent
11
+
12
+
13
+ class DeviceItem(QWidget):
14
+ def __init__(self, device: str) -> None:
15
+ super().__init__()
16
+ self.device = device
17
+ layout = QHBoxLayout()
18
+ layout.setContentsMargins(10, 2, 10, 2)
19
+ self.label = QLabel(device)
20
+ layout.addWidget(self.label)
21
+ self.setLayout(layout)
22
+
23
+ self.setStyleSheet(
24
+ """
25
+ border: 1px solid #ddd;
26
+ border-radius: 5px;
27
+ padding: 10px;
28
+ """
29
+ )
30
+
31
+ def mousePressEvent(self, event: QMouseEvent) -> None:
32
+ if event.button() == Qt.LeftButton:
33
+ drag = QDrag(self)
34
+ mime_data = QMimeData()
35
+ mime_data.setText(self.device)
36
+ drag.setMimeData(mime_data)
37
+ drag.exec_(Qt.MoveAction)
38
+
39
+ def mouseDoubleClickEvent(self, event: QMouseEvent) -> None:
40
+ print("Double Clicked")
41
+ # TODO: Implement double click action for opening the device properties dialog
42
+ return super().mouseDoubleClickEvent(event)
43
+
44
+
45
+ if __name__ == "__main__": # pragma: no cover
46
+ import sys
47
+
48
+ from qtpy.QtWidgets import QApplication
49
+
50
+ app = QApplication(sys.argv)
51
+ widget = DeviceItem("Device")
52
+ widget.show()
53
+ sys.exit(app.exec_())
@@ -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.device_browser.device_browser_plugin import DeviceBrowserPlugin
10
+
11
+ QPyDesignerCustomWidgetCollection.addCustomWidget(DeviceBrowserPlugin())
12
+
13
+
14
+ if __name__ == "__main__": # pragma: no cover
15
+ main()
@@ -59,29 +59,29 @@
59
59
 
60
60
  /* Main index page overview cards */
61
61
 
62
- .sd-card {
62
+ .index-card .sd-card {
63
63
  background: #fff;
64
64
  border-radius: 0;
65
65
  padding: 30px 10px 20px 10px;
66
66
  margin: 10px 0px;
67
67
  }
68
68
 
69
- .sd-card .sd-card-header {
69
+ .index-card .sd-card-header {
70
70
  text-align: center;
71
71
  }
72
72
 
73
- .sd-card .sd-card-header .sd-card-text {
73
+ .index-card .sd-card-header .sd-card-text {
74
74
  margin: 0px;
75
75
  }
76
76
 
77
- .sd-card .sd-card-img-top {
77
+ .index-card .sd-card-img-top {
78
78
  height: 52px;
79
79
  width: 52px;
80
80
  margin-left: auto;
81
81
  margin-right: auto;
82
82
  }
83
83
 
84
- .sd-card .sd-card-header {
84
+ .index-card .sd-card-header {
85
85
  border: none;
86
86
  background-color:white;
87
87
  color: #150458 !important;
@@ -91,13 +91,13 @@
91
91
  border-bottom: none !important;
92
92
  }
93
93
 
94
- .sd-card .sd-card-footer {
94
+ .index-card .sd-card-footer {
95
95
  border: none;
96
96
  background-color:white;
97
97
  border-top: none !important;
98
98
  }
99
99
 
100
- .sd-card .sd-card-footer .sd-card-text{
100
+ .index-card .sd-card-footer .sd-card-text{
101
101
  max-width: 220px;
102
102
  margin-left: auto;
103
103
  margin-right: auto;
@@ -143,7 +143,7 @@
143
143
 
144
144
  /* Main index page overview cards */
145
145
 
146
- html[data-theme=dark] .sd-card {
146
+ html[data-theme=dark] .index-card .sd-card {
147
147
  background-color:var(--pst-color-background);
148
148
  border: none
149
149
  }
@@ -152,12 +152,12 @@
152
152
  box-shadow: 0 .1rem 0.5rem rgba(250, 250, 250, .2) !important
153
153
  }
154
154
 
155
- html[data-theme=dark] .sd-card .sd-card-header {
155
+ html[data-theme=dark] .index-card .sd-card-header {
156
156
  background-color:var(--pst-color-background);
157
157
  color: #150458 !important;
158
158
  }
159
159
 
160
- html[data-theme=dark] .sd-card .sd-card-footer {
160
+ html[data-theme=dark] .index-card .sd-card-footer {
161
161
  background-color:var(--pst-color-background);
162
162
  }
163
163
 
@@ -41,6 +41,7 @@ extensions = [
41
41
  "sphinx_copybutton",
42
42
  "myst_parser",
43
43
  "sphinx_design",
44
+ "sphinx_inline_tabs",
44
45
  ]
45
46
 
46
47
  myst_enable_extensions = [
@@ -27,6 +27,7 @@ api_reference/api_reference.md
27
27
  :link-type: ref
28
28
  :img-top: /assets/rocket_launch_48dp.svg
29
29
  :text-align: center
30
+ :class-item: index-card
30
31
 
31
32
  ## Introduction
32
33
 
@@ -38,6 +39,7 @@ An introduction into the single-resposibility principle and the modular design o
38
39
  :link-type: ref
39
40
  :img-top: /assets/apps_48dp.svg
40
41
  :text-align: center
42
+ :class-item: index-card
41
43
 
42
44
  ## Widget Development
43
45
 
@@ -14,6 +14,7 @@ A flexible and extensible framework for building graphical user interfaces in Py
14
14
  :link-type: ref
15
15
  :img-top: /assets/index_getting_started.svg
16
16
  :text-align: center
17
+ :class-item: index-card
17
18
 
18
19
  ## Introduction
19
20
 
@@ -25,6 +26,7 @@ General information about BEC Widgets.
25
26
  :link-type: ref
26
27
  :img-top: /assets/index_user_guide.svg
27
28
  :text-align: center
29
+ :class-item: index-card
28
30
 
29
31
  ## User guide
30
32
 
@@ -36,6 +38,7 @@ Information for users of BEC Widgets.
36
38
  :link-type: ref
37
39
  :img-top: /assets/index_contribute.svg
38
40
  :text-align: center
41
+ :class-item: index-card
39
42
 
40
43
  ## Developer guide
41
44
 
@@ -47,6 +50,7 @@ Information for developers of BEC Widgets.
47
50
  :link-type: ref
48
51
  :img-top: /assets/index_api.svg
49
52
  :text-align: center
53
+ :class-item: index-card
50
54
 
51
55
  ## API reference
52
56
 
@@ -4,6 +4,7 @@ recommonmark
4
4
  sphinx-toolbox
5
5
  pydata-sphinx-theme
6
6
  sphinx-copybutton
7
+ sphinx-inline-tabs
7
8
  myst-parser
8
9
  sphinx-design
9
10
  PySide6
@@ -25,6 +25,7 @@ api_reference/api_reference.md
25
25
  :link-type: ref
26
26
  :img-top: /assets/rocket_launch_48dp.svg
27
27
  :text-align: center
28
+ :class-item: index-card
28
29
 
29
30
  ## Getting Started
30
31
 
@@ -36,6 +37,7 @@ Learn how to install BEC Widgets and get started with the framework.
36
37
  :link-type: ref
37
38
  :img-top: /assets/display_settings_48dp.svg
38
39
  :text-align: center
40
+ :class-item: index-card
39
41
 
40
42
  ## Applications
41
43
 
@@ -48,6 +50,7 @@ Learn how to use BEC Widgets Applications, to modify and create new applications
48
50
  :link-type: ref
49
51
  :img-top: /assets/apps_48dp.svg
50
52
  :text-align: center
53
+ :class-item: index-card
51
54
 
52
55
  ## Widgets
53
56
 
@@ -59,6 +62,7 @@ Learn about the building blocks of larger applications: widgets.
59
62
  :link-type: ref
60
63
  :img-top: /assets/index_api.svg
61
64
  :text-align: center
65
+ :class-item: index-card
62
66
 
63
67
  ## API reference
64
68