bec-widgets 2.15.1__tar.gz → 2.16.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (413) hide show
  1. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/CHANGELOG.md +61 -0
  2. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/PKG-INFO +1 -1
  3. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/tests/utils.py +2 -2
  4. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/expandable_frame.py +12 -7
  5. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/forms_from_types/forms.py +40 -22
  6. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/forms_from_types/items.py +282 -32
  7. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/dict_backed_table.py +69 -9
  8. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/scan_metadata/_util.py +3 -1
  9. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/device_browser.py +5 -6
  10. bec_widgets-2.16.0/bec_widgets/widgets/services/device_browser/device_item/device_config_dialog.py +254 -0
  11. bec_widgets-2.16.0/bec_widgets/widgets/services/device_browser/device_item/device_config_form.py +60 -0
  12. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +52 -54
  13. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/toggle/toggle.py +9 -0
  14. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/pyproject.toml +1 -1
  15. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.git_hooks/pre-commit +0 -0
  16. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/ISSUE_TEMPLATE/bug_report.yml +0 -0
  17. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/ISSUE_TEMPLATE/documentation_update.md +0 -0
  18. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  19. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/actions/bw_install/action.yml +0 -0
  20. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/pull_request_template.md +0 -0
  21. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/scripts/pr_issue_sync/pr_issue_sync.py +0 -0
  22. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/scripts/pr_issue_sync/requirements.txt +0 -0
  23. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/check_pr.yml +0 -0
  24. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/ci.yml +0 -0
  25. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/end2end-conda.yml +0 -0
  26. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/formatter.yml +0 -0
  27. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/generate-cli-check.yml +0 -0
  28. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/pytest-matrix.yml +0 -0
  29. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/pytest.yml +0 -0
  30. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/semantic_release.yml +0 -0
  31. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/stale-issues.yml +0 -0
  32. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.github/workflows/sync-issues-pr.yml +0 -0
  33. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.gitignore +0 -0
  34. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.gitlab-ci.yml +0 -0
  35. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.pylintrc +0 -0
  36. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/.readthedocs.yaml +0 -0
  37. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/LICENSE +0 -0
  38. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/README.md +0 -0
  39. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/__init__.py +0 -0
  40. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/applications/__init__.py +0 -0
  41. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/applications/bw_launch.py +0 -0
  42. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/applications/launch_window.py +0 -0
  43. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  44. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  45. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/assets/app_icons/auto_update.png +0 -0
  46. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  47. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/assets/app_icons/ui_loader_tile.png +0 -0
  48. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/assets/app_icons/widget_launch_tile.png +0 -0
  49. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/__init__.py +0 -0
  50. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/client.py +0 -0
  51. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/client_utils.py +0 -0
  52. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/generate_cli.py +0 -0
  53. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/rpc/__init__.py +0 -0
  54. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/rpc/rpc_base.py +0 -0
  55. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/rpc/rpc_register.py +0 -0
  56. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/rpc/rpc_widget_handler.py +0 -0
  57. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/cli/server.py +0 -0
  58. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/__init__.py +0 -0
  59. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  60. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  61. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  62. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  63. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  64. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  65. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  66. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  67. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  68. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  69. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  70. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  71. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  72. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/tests/__init__.py +0 -0
  73. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/__init__.py +0 -0
  74. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/bec_connector.py +0 -0
  75. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/bec_designer.py +0 -0
  76. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  77. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/bec_plugin_helper.py +0 -0
  78. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  79. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/bec_table.py +0 -0
  80. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/bec_widget.py +0 -0
  81. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/clickable_label.py +0 -0
  82. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/collapsible_panel_manager.py +0 -0
  83. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/colors.py +0 -0
  84. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/compact_popup.py +0 -0
  85. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/container_utils.py +0 -0
  86. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/crosshair.py +0 -0
  87. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/entry_validator.py +0 -0
  88. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/error_popups.py +0 -0
  89. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/filter_io.py +0 -0
  90. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/forms_from_types/__init__.py +0 -0
  91. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/forms_from_types/styles.py +0 -0
  92. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/fps_counter.py +0 -0
  93. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  94. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/layout_manager.py +0 -0
  95. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  96. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/name_utils.py +0 -0
  97. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  98. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/palette_viewer.py +0 -0
  99. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  100. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  101. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  102. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/plugin_utils.py +0 -0
  103. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/redis_message_waiter.py +0 -0
  104. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/reference_utils.py +0 -0
  105. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/round_frame.py +0 -0
  106. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  107. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/rpc_server.py +0 -0
  108. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/serialization.py +0 -0
  109. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/settings_dialog.py +0 -0
  110. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/side_panel.py +0 -0
  111. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/thread_checker.py +0 -0
  112. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/toolbar.py +0 -0
  113. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/ui_loader.py +0 -0
  114. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/validator_delegate.py +0 -0
  115. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/widget_io.py +0 -0
  116. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/widget_state_manager.py +0 -0
  117. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  118. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/__init__.py +0 -0
  119. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/__init__.py +0 -0
  120. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/auto_update/__init__.py +0 -0
  121. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/auto_update/auto_updates.py +0 -0
  122. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
  123. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
  124. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
  125. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
  126. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
  127. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
  128. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/layout_manager/__init__.py +0 -0
  129. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/layout_manager/layout_manager.py +0 -0
  130. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
  131. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/main_window/addons/__init__.py +0 -0
  132. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/main_window/addons/scroll_label.py +0 -0
  133. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/main_window/addons/web_links.py +0 -0
  134. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
  135. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/__init__.py +0 -0
  136. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
  137. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
  138. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  139. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  140. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  141. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  142. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
  143. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  144. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  145. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  146. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  147. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
  148. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  149. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  150. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  151. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  152. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
  153. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  154. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  155. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  156. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  157. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
  158. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
  159. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  160. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  161. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  162. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  163. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
  164. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/__init__.py +0 -0
  165. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/_base/positioner_box_base.py +0 -0
  166. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/__init__.py +0 -0
  167. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.py +0 -0
  168. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.pyproject +0 -0
  169. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box.ui +0 -0
  170. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/positioner_box_plugin.py +0 -0
  171. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box/register_positioner_box.py +0 -0
  172. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/__init__.py +0 -0
  173. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d.pyproject +0 -0
  174. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box2_d_plugin.py +0 -0
  175. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.py +0 -0
  176. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/positioner_box_2d.ui +0 -0
  177. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_2d/register_positioner_box2_d.py +0 -0
  178. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.py +0 -0
  179. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.pyproject +0 -0
  180. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line.ui +0 -0
  181. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/positioner_control_line_plugin.py +0 -0
  182. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line/register_positioner_control_line.py +0 -0
  183. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
  184. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  185. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  186. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  187. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  188. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
  189. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
  190. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
  191. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
  192. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
  193. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  194. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
  195. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  196. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
  197. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
  198. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
  199. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
  200. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
  201. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
  202. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
  203. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +0 -0
  204. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +0 -0
  205. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +0 -0
  206. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  207. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
  208. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
  209. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
  210. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
  211. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
  212. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  213. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  214. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  215. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  216. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  217. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  218. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/__init__.py +0 -0
  219. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
  220. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  221. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  222. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  223. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  224. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
  225. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  226. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  227. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  228. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  229. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  230. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  231. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/__init__.py +0 -0
  232. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
  233. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  234. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/scan_metadata/__init__.py +0 -0
  235. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/scan_metadata/register_scan_metadata.py +0 -0
  236. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.py +0 -0
  237. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata.pyproject +0 -0
  238. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/scan_metadata/scan_metadata_plugin.py +0 -0
  239. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
  240. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  241. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  242. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  243. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  244. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
  245. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
  246. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
  247. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
  248. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
  249. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/web_console/register_web_console.py +0 -0
  250. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/web_console/web_console.py +0 -0
  251. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/web_console/web_console.pyproject +0 -0
  252. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/web_console/web_console_plugin.py +0 -0
  253. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/website/__init__.py +0 -0
  254. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  255. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/website/website.py +0 -0
  256. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  257. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  258. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/games/__init__.py +0 -0
  259. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/games/minesweeper.py +0 -0
  260. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/games/minesweeper.pyproject +0 -0
  261. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/games/minesweeper_plugin.py +0 -0
  262. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/games/register_minesweeper.py +0 -0
  263. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/__init__.py +0 -0
  264. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/__init__.py +0 -0
  265. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/image.py +0 -0
  266. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/image.pyproject +0 -0
  267. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/image_base.py +0 -0
  268. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/image_item.py +0 -0
  269. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/image_plugin.py +0 -0
  270. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/image_processor.py +0 -0
  271. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/image_roi_plot.py +0 -0
  272. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/register_image.py +0 -0
  273. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/setting_widgets/__init__.py +0 -0
  274. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/setting_widgets/image_roi_tree.py +0 -0
  275. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/toolbar_bundles/__init__.py +0 -0
  276. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/toolbar_bundles/image_selection.py +0 -0
  277. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/image/toolbar_bundles/processing.py +0 -0
  278. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
  279. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/motor_map.py +0 -0
  280. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/motor_map.pyproject +0 -0
  281. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/motor_map_plugin.py +0 -0
  282. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/register_motor_map.py +0 -0
  283. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/settings/__init__.py +0 -0
  284. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.py +0 -0
  285. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/settings/motor_map_settings.ui +0 -0
  286. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/__init__.py +0 -0
  287. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/motor_map/toolbar_bundles/motor_selection.py +0 -0
  288. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
  289. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.py +0 -0
  290. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform.pyproject +0 -0
  291. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_plugin.py +0 -0
  292. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/register_multi_waveform.py +0 -0
  293. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/settings/__init__.py +0 -0
  294. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/settings/control_panel.py +0 -0
  295. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/settings/multi_waveform_controls.ui +0 -0
  296. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/__init__.py +0 -0
  297. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/multi_waveform/toolbar_bundles/monitor_selection.py +0 -0
  298. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/plot_base.py +0 -0
  299. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/roi/__init__.py +0 -0
  300. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/roi/image_roi.py +0 -0
  301. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/__init__.py +0 -0
  302. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/register_scatter_waveform.py +0 -0
  303. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_curve.py +0 -0
  304. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.py +0 -0
  305. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform.pyproject +0 -0
  306. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/scatter_waveform_plugin.py +0 -0
  307. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/settings/__init__.py +0 -0
  308. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_setting.py +0 -0
  309. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_horizontal.ui +0 -0
  310. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/scatter_waveform/settings/scatter_curve_settings_vertical.ui +0 -0
  311. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/setting_menus/__init__.py +0 -0
  312. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/setting_menus/axis_settings.py +0 -0
  313. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_horizontal.ui +0 -0
  314. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/setting_menus/axis_settings_vertical.ui +0 -0
  315. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/toolbar_bundles/__init__.py +0 -0
  316. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/toolbar_bundles/mouse_interactions.py +0 -0
  317. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/toolbar_bundles/plot_export.py +0 -0
  318. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/toolbar_bundles/roi_bundle.py +0 -0
  319. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/toolbar_bundles/save_state.py +0 -0
  320. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
  321. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/curve.py +0 -0
  322. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/register_waveform.py +0 -0
  323. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/settings/__init__.py +0 -0
  324. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/__init__.py +0 -0
  325. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_setting.py +0 -0
  326. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/settings/curve_settings/curve_tree.py +0 -0
  327. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/utils/__init__.py +0 -0
  328. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/utils/roi_manager.py +0 -0
  329. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/waveform.py +0 -0
  330. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/waveform.pyproject +0 -0
  331. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/plots/waveform/waveform_plugin.py +0 -0
  332. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/__init__.py +0 -0
  333. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  334. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  335. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  336. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
  337. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  338. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
  339. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  340. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  341. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  342. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  343. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  344. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/__init__.py +0 -0
  345. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
  346. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  347. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  348. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  349. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  350. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
  351. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
  352. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  353. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  354. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  355. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  356. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
  357. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  358. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  359. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  360. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  361. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  362. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/services/device_browser/util.py +0 -0
  363. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/__init__.py +0 -0
  364. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/logpanel/__init__.py +0 -0
  365. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/logpanel/_util.py +0 -0
  366. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/logpanel/log_panel.pyproject +0 -0
  367. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/logpanel/log_panel_plugin.py +0 -0
  368. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/logpanel/logpanel.py +0 -0
  369. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/logpanel/register_log_panel.py +0 -0
  370. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/signal_label/register_signal_label.py +0 -0
  371. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/signal_label/signal_label.py +0 -0
  372. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/signal_label/signal_label.pyproject +0 -0
  373. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/signal_label/signal_label_plugin.py +0 -0
  374. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinbox/__init__.py +0 -0
  375. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box.pyproject +0 -0
  376. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinbox/bec_spin_box_plugin.py +0 -0
  377. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinbox/decimal_spinbox.py +0 -0
  378. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinbox/register_bec_spin_box.py +0 -0
  379. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
  380. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  381. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  382. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  383. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  384. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
  385. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  386. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  387. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  388. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
  389. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
  390. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
  391. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
  392. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
  393. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
  394. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button_native/__init__.py +0 -0
  395. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.py +0 -0
  396. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native.pyproject +0 -0
  397. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button_native/color_button_native_plugin.py +0 -0
  398. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/color_button_native/register_color_button_native.py +0 -0
  399. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
  400. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  401. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  402. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  403. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  404. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
  405. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  406. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  407. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  408. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
  409. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  410. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  411. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  412. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
  413. {bec_widgets-2.15.1 → bec_widgets-2.16.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,6 +1,67 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
+ ## v2.16.0 (2025-06-17)
5
+
6
+ ### Bug Fixes
7
+
8
+ - Adjust height of list widget
9
+ ([`11131ef`](https://github.com/bec-project/bec_widgets/commit/11131ef14c7e8714a4eaf70256da9e5835d60810))
10
+
11
+ - Make website test robust
12
+ ([`4d8c07c`](https://github.com/bec-project/bec_widgets/commit/4d8c07cdd142bab4c0d8224c43e66517a02da7c1))
13
+
14
+ - Parse config on submission and reload after
15
+ ([`5e4c129`](https://github.com/bec-project/bec_widgets/commit/5e4c129af6ae6644e4bb94f4129c6770fd26542d))
16
+
17
+ - Pass on kwargs from PydanticModelForm
18
+ ([`a55f561`](https://github.com/bec-project/bec_widgets/commit/a55f561971a9ce2295cd835cd5cb6ce436d6c693))
19
+
20
+ - Put waiting in thread
21
+ ([`1a350c3`](https://github.com/bec-project/bec_widgets/commit/1a350c3b16da0d990afd53d14934040e5e063177))
22
+
23
+ - Reset dict table properly
24
+ ([`5623547`](https://github.com/bec-project/bec_widgets/commit/5623547e926b86eeb5e2164fa6ec9e36b99b8f63))
25
+
26
+ - Scale dict widget height
27
+ ([`dea2568`](https://github.com/bec-project/bec_widgets/commit/dea2568de370450ca871fe7bf3573eec9acf8122))
28
+
29
+ - Tidy up form widget formatting
30
+ ([`8f4c8e4`](https://github.com/bec-project/bec_widgets/commit/8f4c8e45b3d4a15c67e36cd52d475c3117eca1d3))
31
+
32
+ ### Features
33
+
34
+ - Add a widget to edit lists in forms
35
+ ([`7fc85ba`](https://github.com/bec-project/bec_widgets/commit/7fc85bac7fff8555b73d28eefe9a538540d574b9))
36
+
37
+ - Add set form item
38
+ ([`be73349`](https://github.com/bec-project/bec_widgets/commit/be73349c706582c144813f70dbc477372057de86))
39
+
40
+ - Allow editing device config from browser
41
+ ([`886964b`](https://github.com/bec-project/bec_widgets/commit/886964bb54d2f3923fb6baf198652bb05cf28eb2))
42
+
43
+ - Generate combobox for literal str
44
+ ([`138d4ca`](https://github.com/bec-project/bec_widgets/commit/138d4cabbd50e3c86ab18e9cdc25bbb5cdabc511))
45
+
46
+ ### Performance Improvements
47
+
48
+ - Replace wait with waitUntil
49
+ ([`d626caa`](https://github.com/bec-project/bec_widgets/commit/d626caae3dc71683134cc47073bc131eba4820f5))
50
+
51
+ ### Refactoring
52
+
53
+ - Move device config form to module
54
+ ([`9ce31c9`](https://github.com/bec-project/bec_widgets/commit/9ce31c9833ae38721b2246cdcac50f1154fba99d))
55
+
56
+ - Rename field widgets
57
+ ([`b0d03c0`](https://github.com/bec-project/bec_widgets/commit/b0d03c0648cd365143dfed27d4755d6f5b9c7a45))
58
+
59
+ ### Testing
60
+
61
+ - Add tests for config dialog
62
+ ([`a9613a0`](https://github.com/bec-project/bec_widgets/commit/a9613a07b0cd9cd9455fd996d124c77218c9388f))
63
+
64
+
4
65
  ## v2.15.1 (2025-06-16)
5
66
 
6
67
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec_widgets
3
- Version: 2.15.1
3
+ Version: 2.16.0
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -19,7 +19,7 @@ class FakeDevice(BECDevice):
19
19
  "readoutPriority": "baseline",
20
20
  "deviceClass": "ophyd.Device",
21
21
  "deviceConfig": {},
22
- "deviceTags": ["user device"],
22
+ "deviceTags": {"user device"},
23
23
  "enabled": enabled,
24
24
  "readOnly": False,
25
25
  "name": self.name,
@@ -89,7 +89,7 @@ class FakePositioner(BECPositioner):
89
89
  "readoutPriority": "baseline",
90
90
  "deviceClass": "ophyd_devices.SimPositioner",
91
91
  "deviceConfig": {"delay": 1, "tolerance": 0.01, "update_frequency": 400},
92
- "deviceTags": ["user motors"],
92
+ "deviceTags": {"user motors"},
93
93
  "enabled": enabled,
94
94
  "readOnly": False,
95
95
  "name": self.name,
@@ -37,6 +37,16 @@ class ExpandableGroupFrame(QFrame):
37
37
  self._layout.setContentsMargins(0, 0, 0, 0)
38
38
  self.setLayout(self._layout)
39
39
 
40
+ self._create_title_layout(title, icon)
41
+
42
+ self._contents = QWidget(self)
43
+ self._layout.addWidget(self._contents)
44
+
45
+ self._expansion_button.clicked.connect(self.switch_expanded_state)
46
+ self.expanded = self._expanded # type: ignore
47
+ self.expansion_state_changed.emit()
48
+
49
+ def _create_title_layout(self, title: str, icon: str):
40
50
  self._title_layout = QHBoxLayout()
41
51
  self._layout.addLayout(self._title_layout)
42
52
 
@@ -45,6 +55,8 @@ class ExpandableGroupFrame(QFrame):
45
55
  self._title_layout.addWidget(self._title_icon)
46
56
  self._title_layout.addWidget(self._title)
47
57
  self.icon_name = icon
58
+ self._title.clicked.connect(self.switch_expanded_state)
59
+ self._title_icon.clicked.connect(self.switch_expanded_state)
48
60
 
49
61
  self._title_layout.addStretch(1)
50
62
 
@@ -52,13 +64,6 @@ class ExpandableGroupFrame(QFrame):
52
64
  self._update_expansion_icon()
53
65
  self._title_layout.addWidget(self._expansion_button, stretch=1)
54
66
 
55
- self._contents = QWidget(self)
56
- self._layout.addWidget(self._contents)
57
-
58
- self._expansion_button.clicked.connect(self.switch_expanded_state)
59
- self.expanded = self._expanded # type: ignore
60
- self.expansion_state_changed.emit()
61
-
62
67
  def set_layout(self, layout: QLayout) -> None:
63
68
  self._contents.setLayout(layout)
64
69
  self._contents.layout().setContentsMargins(0, 0, 0, 0) # type: ignore
@@ -1,6 +1,5 @@
1
1
  from __future__ import annotations
2
2
 
3
- from decimal import Decimal
4
3
  from types import NoneType
5
4
  from typing import NamedTuple
6
5
 
@@ -8,11 +7,12 @@ from bec_lib.logger import bec_logger
8
7
  from bec_qthemes import material_icon
9
8
  from pydantic import BaseModel, ValidationError
10
9
  from qtpy.QtCore import Signal # type: ignore
11
- from qtpy.QtWidgets import QGridLayout, QLabel, QLayout, QSizePolicy, QVBoxLayout, QWidget
10
+ from qtpy.QtWidgets import QApplication, QGridLayout, QLabel, QSizePolicy, QVBoxLayout, QWidget
12
11
 
13
12
  from bec_widgets.utils.bec_widget import BECWidget
14
13
  from bec_widgets.utils.compact_popup import CompactPopupWidget
15
14
  from bec_widgets.utils.error_popups import SafeProperty
15
+ from bec_widgets.utils.forms_from_types import styles
16
16
  from bec_widgets.utils.forms_from_types.items import (
17
17
  DynamicFormItem,
18
18
  DynamicFormItemType,
@@ -68,15 +68,11 @@ class TypedForm(BECWidget, QWidget):
68
68
  logger.error("Must specify one and only one of items and form_item_specs!")
69
69
  items = []
70
70
  super().__init__(parent=parent, client=client, **kwargs)
71
- self._items = (
72
- form_item_specs
73
- if form_item_specs is not None
74
- else [
75
- FormItemSpec(name=name, item_type=item_type, pretty_display=pretty_display)
76
- for name, item_type in items # type: ignore
77
- ]
78
- )
79
- self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
71
+ self._items = form_item_specs or [
72
+ FormItemSpec(name=name, item_type=item_type, pretty_display=pretty_display)
73
+ for name, item_type in items # type: ignore
74
+ ]
75
+ self.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)
80
76
  self._layout = QVBoxLayout()
81
77
  self._layout.setContentsMargins(0, 0, 0, 0)
82
78
  self.setLayout(self._layout)
@@ -84,15 +80,19 @@ class TypedForm(BECWidget, QWidget):
84
80
  self._enabled: bool = enabled
85
81
 
86
82
  self._form_grid_container = QWidget(parent=self)
87
- self._form_grid_container.setSizePolicy(
88
- QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding
89
- )
83
+ self._form_grid_container.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)
90
84
  self._form_grid = QWidget(parent=self._form_grid_container)
91
- self._form_grid.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
85
+ self._form_grid.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)
92
86
  self._layout.addWidget(self._form_grid_container)
93
87
  self._form_grid_container.setLayout(QVBoxLayout())
94
88
  self._form_grid.setLayout(self._new_grid_layout())
95
89
 
90
+ self._widget_types: dict | None = None
91
+ self._widget_from_type = widget_from_type
92
+ self._post_init()
93
+
94
+ def _post_init(self):
95
+ """Override this if a subclass should do things after super().__init__ and before populate()"""
96
96
  self.populate()
97
97
  self.enabled = self._enabled # type: ignore # QProperty
98
98
 
@@ -100,6 +100,8 @@ class TypedForm(BECWidget, QWidget):
100
100
  self._clear_grid()
101
101
  for r, item in enumerate(self._items):
102
102
  self._add_griditem(item, r)
103
+ gl: QGridLayout = self._form_grid.layout()
104
+ gl.setRowStretch(gl.rowCount(), 1)
103
105
 
104
106
  def _add_griditem(self, item: FormItemSpec, row: int):
105
107
  grid = self._form_grid.layout()
@@ -107,16 +109,16 @@ class TypedForm(BECWidget, QWidget):
107
109
  label.setProperty("_model_field_name", item.name)
108
110
  label.setToolTip(item.info.description or item.name)
109
111
  grid.addWidget(label, row, 0)
110
- widget = widget_from_type(item.item_type)(parent=self, spec=item)
112
+ widget = self._widget_from_type(item, self._widget_types)(parent=self, spec=item)
111
113
  widget.valueChanged.connect(self.value_changed)
112
- widget.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
114
+ widget.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)
113
115
  grid.addWidget(widget, row, 1)
114
116
 
115
117
  def enumerate_form_widgets(self):
116
118
  """Return a generator over the rows of the form, with the row number, the label widget (to
117
- which the field name is attached as a property), and the entry widget"""
119
+ which the field name is attached as a property "_model_field_name"), and the entry widget"""
118
120
  grid: QGridLayout = self._form_grid.layout() # type: ignore
119
- for i in range(grid.rowCount()):
121
+ for i in range(grid.rowCount() - 1): # One extra row for stretch
120
122
  yield GridRow(i, grid.itemAtPosition(i, 0).widget(), grid.itemAtPosition(i, 1).widget())
121
123
 
122
124
  def _dict_from_grid(self) -> dict[str, DynamicFormItemType]:
@@ -135,7 +137,7 @@ class TypedForm(BECWidget, QWidget):
135
137
  old_layout.deleteLater()
136
138
  self._form_grid.deleteLater()
137
139
  self._form_grid = QWidget()
138
- self._form_grid.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.MinimumExpanding)
140
+ self._form_grid.setSizePolicy(QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)
139
141
  self._form_grid.setLayout(self._new_grid_layout())
140
142
  self._form_grid_container.layout().addWidget(self._form_grid)
141
143
 
@@ -186,14 +188,18 @@ class PydanticModelForm(TypedForm):
186
188
 
187
189
  Args:
188
190
  data_model (type[BaseModel]): the model class for which to generate a form.
189
- enabled (bool): whether fields are enabled for editing.
191
+ enabled (bool, optional): whether fields are enabled for editing.
190
192
  pretty_display (bool, optional): Whether to use a pretty display for the widget. Defaults to False. If True, disables the widget, doesn't add a clear button, and adapts the stylesheet for non-editable display.
191
193
 
192
194
  """
193
195
  self._pretty_display = pretty_display
194
196
  self._md_schema = data_model
195
197
  super().__init__(
196
- parent=parent, form_item_specs=self._form_item_specs(), enabled=enabled, client=client
198
+ parent=parent,
199
+ form_item_specs=self._form_item_specs(),
200
+ enabled=enabled,
201
+ client=client,
202
+ **kwargs,
197
203
  )
198
204
 
199
205
  self._validity = CompactPopupWidget()
@@ -207,6 +213,18 @@ class PydanticModelForm(TypedForm):
207
213
  self._layout.addWidget(self._validity)
208
214
  self.value_changed.connect(self.validate_form)
209
215
 
216
+ self._connect_to_theme_change()
217
+
218
+ def set_pretty_display_theme(self, theme: str = "dark"):
219
+ if self._pretty_display:
220
+ self.setStyleSheet(styles.pretty_display_theme(theme))
221
+
222
+ def _connect_to_theme_change(self):
223
+ """Connect to the theme change signal."""
224
+ qapp = QApplication.instance()
225
+ if hasattr(qapp, "theme_signal"):
226
+ qapp.theme_signal.theme_updated.connect(self.set_pretty_display_theme) # type: ignore
227
+
210
228
  def set_schema(self, schema: type[BaseModel]):
211
229
  self._md_schema = schema
212
230
  self.populate()