bec-widgets 1.3.2__tar.gz → 1.4.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 (293) hide show
  1. bec_widgets-1.4.0/CHANGELOG.md +209 -0
  2. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/PKG-INFO +1 -2
  3. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/crosshair.py +134 -33
  4. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/plot_base.py +4 -4
  5. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_group_box.py +1 -1
  6. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/pyproject.toml +1 -1
  7. bec_widgets-1.3.2/CHANGELOG.md +0 -172
  8. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.git_hooks/pre-commit +0 -0
  9. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.gitignore +0 -0
  10. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  11. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  12. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  13. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.gitlab/merge_request_templates/default.md +0 -0
  14. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.gitlab-ci.yml +0 -0
  15. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.pylintrc +0 -0
  16. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/.readthedocs.yaml +0 -0
  17. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/LICENSE +0 -0
  18. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/README.md +0 -0
  19. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/__init__.py +0 -0
  20. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/applications/__init__.py +0 -0
  21. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/__init__.py +0 -0
  22. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
  23. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
  24. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
  25. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/applications/bec_app.py +0 -0
  26. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  27. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  28. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  29. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/__init__.py +0 -0
  30. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/auto_updates.py +0 -0
  31. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/client.py +0 -0
  32. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/client_utils.py +0 -0
  33. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/generate_cli.py +0 -0
  34. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/rpc_register.py +0 -0
  35. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  36. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/cli/server.py +0 -0
  37. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/__init__.py +0 -0
  38. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  39. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  40. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  41. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  42. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  43. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  44. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  45. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  46. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  47. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  48. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  49. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  50. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  51. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/qt_utils/__init__.py +0 -0
  52. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/qt_utils/compact_popup.py +0 -0
  53. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  54. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/qt_utils/palette_viewer.py +0 -0
  55. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  56. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  57. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/qt_utils/toolbar.py +0 -0
  58. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/tests/__init__.py +0 -0
  59. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/tests/utils.py +0 -0
  60. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/__init__.py +0 -0
  61. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/bec_connector.py +0 -0
  62. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/bec_designer.py +0 -0
  63. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  64. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  65. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/bec_table.py +0 -0
  66. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/bec_widget.py +0 -0
  67. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/colors.py +0 -0
  68. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/container_utils.py +0 -0
  69. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/entry_validator.py +0 -0
  70. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/filter_io.py +0 -0
  71. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/fps_counter.py +0 -0
  72. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  73. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/layout_manager.py +0 -0
  74. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  75. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  76. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  77. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  78. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  79. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/plugin_utils.py +0 -0
  80. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/reference_utils.py +0 -0
  81. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  82. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/thread_checker.py +0 -0
  83. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/ui_loader.py +0 -0
  84. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/validator_delegate.py +0 -0
  85. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/widget_io.py +0 -0
  86. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  87. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/__init__.py +0 -0
  88. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/base_classes/__init__.py +0 -0
  89. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/base_classes/device_input_base.py +0 -0
  90. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/base_classes/device_signal_input_base.py +0 -0
  91. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/__init__.py +0 -0
  92. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/bec_progress_bar.pyproject +0 -0
  93. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  94. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/bec_progressbar.py +0 -0
  95. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_progressbar/register_bec_progress_bar.py +0 -0
  96. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/__init__.py +0 -0
  97. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/bec_queue.py +0 -0
  98. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/bec_queue.pyproject +0 -0
  99. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +0 -0
  100. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_queue/register_bec_queue.py +0 -0
  101. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/__init__.py +0 -0
  102. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/bec_status_box.py +0 -0
  103. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject +0 -0
  104. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +0 -0
  105. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +0 -0
  106. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/bec_status_box/status_item.py +0 -0
  107. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/__init__.py +0 -0
  108. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/abort_button.pyproject +0 -0
  109. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/abort_button_plugin.py +0 -0
  110. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/button_abort.py +0 -0
  111. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_abort/register_abort_button.py +0 -0
  112. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/__init__.py +0 -0
  113. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/button_reset.py +0 -0
  114. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/register_reset_button.py +0 -0
  115. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/reset_button.pyproject +0 -0
  116. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_reset/reset_button_plugin.py +0 -0
  117. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/__init__.py +0 -0
  118. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/button_resume.py +0 -0
  119. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/register_resume_button.py +0 -0
  120. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/resume_button.pyproject +0 -0
  121. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/button_resume/resume_button_plugin.py +0 -0
  122. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/__init__.py +0 -0
  123. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/color_button.py +0 -0
  124. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/color_button.pyproject +0 -0
  125. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/color_button_plugin.py +0 -0
  126. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/color_button/register_color_button.py +0 -0
  127. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/__init__.py +0 -0
  128. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/colormap_selector.py +0 -0
  129. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject +0 -0
  130. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +0 -0
  131. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +0 -0
  132. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/__init__.py +0 -0
  133. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/bec_color_map_widget.pyproject +0 -0
  134. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  135. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/colormap_widget.py +0 -0
  136. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/colormap_widget/register_bec_color_map_widget.py +0 -0
  137. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/console/console.py +0 -0
  138. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/console/console.pyproject +0 -0
  139. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/console/console_plugin.py +0 -0
  140. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/console/register_console.py +0 -0
  141. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/__init__.py +0 -0
  142. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box.py +0 -0
  143. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box.pyproject +0 -0
  144. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py +0 -0
  145. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py +0 -0
  146. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/__init__.py +0 -0
  147. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +0 -0
  148. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject +0 -0
  149. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +0 -0
  150. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +0 -0
  151. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/__init__.py +0 -0
  152. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser.py +0 -0
  153. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser.pyproject +0 -0
  154. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser.ui +0 -0
  155. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_browser_plugin.py +0 -0
  156. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_item/__init__.py +0 -0
  157. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/device_item/device_item.py +0 -0
  158. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_browser/register_device_browser.py +0 -0
  159. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/__init__.py +0 -0
  160. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/device_combo_box.pyproject +0 -0
  161. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +0 -0
  162. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/device_combobox.py +0 -0
  163. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_combobox/register_device_combo_box.py +0 -0
  164. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/__init__.py +0 -0
  165. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/device_line_edit.py +0 -0
  166. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject +0 -0
  167. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +0 -0
  168. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +0 -0
  169. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/__init__.py +0 -0
  170. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock.py +0 -0
  171. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock_area.py +0 -0
  172. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock_area.pyproject +0 -0
  173. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/dock_area_plugin.py +0 -0
  174. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/dock/register_dock_area.py +0 -0
  175. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/__init__.py +0 -0
  176. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/figure.py +0 -0
  177. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/__init__.py +0 -0
  178. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/axis_settings.py +0 -0
  179. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/axis_settings.ui +0 -0
  180. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/__init__.py +0 -0
  181. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/image.py +0 -0
  182. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/image_item.py +0 -0
  183. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/image/image_processor.py +0 -0
  184. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/motor_map/__init__.py +0 -0
  185. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +0 -0
  186. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/waveform/__init__.py +0 -0
  187. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/waveform/waveform.py +0 -0
  188. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +0 -0
  189. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/image/__init__.py +0 -0
  190. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/image/bec_image_widget.pyproject +0 -0
  191. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/image/bec_image_widget_plugin.py +0 -0
  192. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/image/image_widget.py +0 -0
  193. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/image/register_bec_image_widget.py +0 -0
  194. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/jupyter_console/__init__.py +0 -0
  195. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/jupyter_console/jupyter_console.py +0 -0
  196. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/__init__.py +0 -0
  197. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  198. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  199. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py +0 -0
  200. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  201. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  202. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  203. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/__init__.py +0 -0
  204. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject +0 -0
  205. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +0 -0
  206. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py +0 -0
  207. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  208. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  209. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/motor_map_widget.py +0 -0
  210. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +0 -0
  211. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/__init__.py +0 -0
  212. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/position_indicator.py +0 -0
  213. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/position_indicator.pyproject +0 -0
  214. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +0 -0
  215. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/position_indicator/register_position_indicator.py +0 -0
  216. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/__init__.py +0 -0
  217. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box.py +0 -0
  218. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box.pyproject +0 -0
  219. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box.ui +0 -0
  220. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +0 -0
  221. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line.py +0 -0
  222. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject +0 -0
  223. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line.ui +0 -0
  224. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +0 -0
  225. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/register_positioner_box.py +0 -0
  226. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +0 -0
  227. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/__init__.py +0 -0
  228. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/positioner_group.py +0 -0
  229. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/positioner_group.pyproject +0 -0
  230. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/positioner_group_plugin.py +0 -0
  231. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/positioner_group/register_positioner_group.py +0 -0
  232. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/__init__.py +0 -0
  233. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +0 -0
  234. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring.py +0 -0
  235. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +0 -0
  236. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  237. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  238. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/__init__.py +0 -0
  239. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/register_scan_control.py +0 -0
  240. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_control.py +0 -0
  241. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_control.pyproject +0 -0
  242. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/scan_control/scan_control_plugin.py +0 -0
  243. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/__init__.py +0 -0
  244. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/register_signal_combobox.py +0 -0
  245. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/signal_combobox.py +0 -0
  246. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/signal_combobox.pyproject +0 -0
  247. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_combobox/signal_combobox_plugin.py +0 -0
  248. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/__init__.py +0 -0
  249. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/register_signal_line_edit.py +0 -0
  250. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit.py +0 -0
  251. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit.pyproject +0 -0
  252. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/signal_line_edit/signal_line_edit_plugin.py +0 -0
  253. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/__init__.py +0 -0
  254. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/register_spinner_widget.py +0 -0
  255. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/spinner.py +0 -0
  256. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/spinner_widget.pyproject +0 -0
  257. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/spinner/spinner_widget_plugin.py +0 -0
  258. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/__init__.py +0 -0
  259. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/register_stop_button.py +0 -0
  260. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/stop_button.py +0 -0
  261. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/stop_button.pyproject +0 -0
  262. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/stop_button/stop_button_plugin.py +0 -0
  263. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/__init__.py +0 -0
  264. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/register_text_box.py +0 -0
  265. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/text_box.py +0 -0
  266. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/text_box.pyproject +0 -0
  267. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/text_box/text_box_plugin.py +0 -0
  268. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/__init__.py +0 -0
  269. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/register_toggle_switch.py +0 -0
  270. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/toggle.py +0 -0
  271. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/toggle_switch.pyproject +0 -0
  272. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/toggle/toggle_switch_plugin.py +0 -0
  273. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/__init__.py +0 -0
  274. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/register_vs_code_editor.py +0 -0
  275. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/vs_code_editor.pyproject +0 -0
  276. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +0 -0
  277. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/vscode/vscode.py +0 -0
  278. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/__init__.py +0 -0
  279. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject +0 -0
  280. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +0 -0
  281. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +0 -0
  282. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/__init__.py +0 -0
  283. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  284. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  285. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  286. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  287. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  288. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/waveform/waveform_widget.py +0 -0
  289. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/website/__init__.py +0 -0
  290. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/website/register_website_widget.py +0 -0
  291. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/website/website.py +0 -0
  292. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/website/website_widget.pyproject +0 -0
  293. {bec_widgets-1.3.2 → bec_widgets-1.4.0}/bec_widgets/widgets/website/website_widget_plugin.py +0 -0
@@ -0,0 +1,209 @@
1
+ # CHANGELOG
2
+
3
+
4
+ ## v1.4.0 (2024-11-11)
5
+
6
+ ### Bug Fixes
7
+
8
+ - **crosshair**: Label of coordinates of TextItem displays numbers in general format
9
+ ([`11e5937`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/11e5937ae0f3c1413acd4e66878a692ebe4ef7d0))
10
+
11
+ - **crosshair**: Label of coordinates of TextItem is updated according to the current theme of qapp
12
+ ([`4f31ea6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f31ea655cf6190e141e6a2720a2d6da517a2b5b))
13
+
14
+ - **crosshair**: Log is separately scaled for backend logic and for signal emit
15
+ ([`b2eb71a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b2eb71aae0b6a7c82158f2d150ae1e31411cfdeb))
16
+
17
+ ### Features
18
+
19
+ - **crosshair**: Textitem to display crosshair coordinates
20
+ ([`035136d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/035136d5171ec5f4311d15a9aa5bad2bdbc1f6cb))
21
+
22
+ ### Testing
23
+
24
+ - **crosshair**: Tests extended
25
+ ([`64df805`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/64df805a9ed92bb97e580ac3bc0a1bbd2b1cb81e))
26
+
27
+
28
+ ## v1.3.3 (2024-11-07)
29
+
30
+ ### Bug Fixes
31
+
32
+ - **scan_control**: Devicelineedit kwargs readings changed to get name of the positioner
33
+ ([`5fabd4b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5fabd4bea95bafd2352102686357cc1db80813fd))
34
+
35
+ ### Documentation
36
+
37
+ - Update outdated text in docs
38
+ ([`4f0693c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f0693cae34b391d75884837e1ae6353a0501868))
39
+
40
+
41
+ ## v1.3.2 (2024-11-05)
42
+
43
+ ### Bug Fixes
44
+
45
+ - **plot_base**: Legend text color is changed when changing dark-light theme
46
+ ([`2304c9f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2304c9f8497c1ab1492f3e6690bb79b0464c0df8))
47
+
48
+ ### Build System
49
+
50
+ - Pyside6 version fixed 6.7.2
51
+ ([`c6e48ec`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c6e48ec1fe5aaee6a7c7a6f930f1520cd439cdb2))
52
+
53
+
54
+ ## v1.3.1 (2024-10-31)
55
+
56
+ ### Bug Fixes
57
+
58
+ - **ophyd_kind_util**: Kind enums are imported from the bec widget util class
59
+ ([`940ee65`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/940ee6552c1ee8d9b4e4a74c62351f2e133ab678))
60
+
61
+
62
+ ## v1.3.0 (2024-10-30)
63
+
64
+ ### Bug Fixes
65
+
66
+ - **colors**: Extend color map validation for matplotlib and colorcet maps (if available)
67
+ ([`14dd8c5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/14dd8c5b2947c92f6643b888d71975e4e8d4ee88))
68
+
69
+ ### Features
70
+
71
+ - **colormap_button**: Colormap button with menu to select colormap filtered by the colormap type
72
+ ([`b039933`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b039933405e2fbe92bd81bd0748e79e8d443a741))
73
+
74
+
75
+ ## v1.2.0 (2024-10-25)
76
+
77
+ ### Features
78
+
79
+ - **colors**: Evenly spaced color generation + new golden ratio calculation
80
+ ([`40c9fea`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/40c9fea35f869ef52e05948dd1989bcd99f602e0))
81
+
82
+ ### Refactoring
83
+
84
+ - Add bec_lib version to statusbox
85
+ ([`5d4b86e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5d4b86e1c6e1800051afce4f991153e370767fa6))
86
+
87
+
88
+ ## v1.1.0 (2024-10-25)
89
+
90
+ ### Features
91
+
92
+ - Add filter i/o utility class
93
+ ([`0350833`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0350833f36e0a7cadce4173f9b1d1fbfdf985375))
94
+
95
+ ### Refactoring
96
+
97
+ - Do not flush selection upon receiving config update; allow widgetIO to receive kwargs to be able
98
+ to use get_value to receive string instead of int for QComboBox
99
+ ([`91959e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/91959e82de8586934af3ebb5aaa0923930effc51))
100
+
101
+ - Allow to set selection in DeviceInput; automatic update of selection on device config update;
102
+ cleanup
103
+ ([`5eb15b7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5eb15b785f12e30eb8ccbc56d4ad9e759a4cf5eb))
104
+
105
+ - Cleanup, added device_signal for signal inputs
106
+ ([`6fb2055`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6fb20552ff57978f4aeb79fd7f062f8d6b5581e7))
107
+
108
+ ### Testing
109
+
110
+ - **scan_control**: Tests added for grid_scan to ensure scan_args signal validity
111
+ ([`acb7902`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/acb79020d4be546efc001ff47b6f5cdba2ee9375))
112
+
113
+
114
+ ## v1.0.2 (2024-10-22)
115
+
116
+ ### Bug Fixes
117
+
118
+ - **scan_control**: Scan args signal fixed to emit list instead of hardcoded structure
119
+ ([`4f5448c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f5448cf51a204e077af162c7f0aed1f1a60e57a))
120
+
121
+
122
+ ## v1.0.1 (2024-10-22)
123
+
124
+ ### Bug Fixes
125
+
126
+ - **waveform**: Added support for live_data and data access
127
+ ([`7469c89`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7469c892c8076fc09e61f173df6920c551241cec))
128
+
129
+
130
+ ## v1.0.0 (2024-10-18)
131
+
132
+ ### Bug Fixes
133
+
134
+ - **crosshair**: Downsample clear markers
135
+ ([`f9a889f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f9a889fc6d380b9e587edcb465203122ea0bffc1))
136
+
137
+ ### Features
138
+
139
+ - Ability to disable scatter from waveform & compatible crosshair with down sampling
140
+ ([`2ab12ed`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2ab12ed60abb995abc381d9330fdcf399796d9e5))
141
+
142
+
143
+ ## v0.119.0 (2024-10-17)
144
+
145
+ ### Bug Fixes
146
+
147
+ - Fix syntax due to change of api for simulated devices
148
+ ([`19f4e40`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/19f4e407e00ee242973ca4c3f90e4e41a4d3e315))
149
+
150
+ - Remove wrongly scoped test
151
+ ([`a23841b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a23841b2553dc7162da943715d58275c7dc39ed9))
152
+
153
+ - Rename 'compact' property -> 'compact_view'
154
+ ([`6982711`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6982711fea5fb8a73845ed7c0692e3ec53ef7871))
155
+
156
+ - Alignment 1D update, make app window a main window (in .ui file)
157
+ ([`0015f0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0015f0e2d62adc02d3ef334e1f6dbb2d0288fec6))
158
+
159
+ - Set (Minimum, Fixed) size policy on Stop button
160
+ ([`523cc43`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/523cc435725b10b7d59a4477a1aaa24a1f3e37a2))
161
+
162
+ ### Features
163
+
164
+ - New PositionerGroup widget
165
+ ([`af9655d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/af9655de0c541092437accfbaa779628a2f48ccb))
166
+
167
+ - Add 'expand_popup' property to CompactPopupWidget
168
+ ([`e4121a0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e4121a01cb6b8d496e630cd43bc642b994b8f310))
169
+
170
+ This property tells if expand should show a popup (by default), or if the widget should expand
171
+ in-place
172
+
173
+ - Positionerbox with a popup view
174
+ ([`2615787`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/261578796f1de8ca9cab9b91659bc1484f7aa89d))
175
+
176
+ - Emit 'device_selected' and 'scan_axis' from scan control widget
177
+ ([`0b9b1a3`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/0b9b1a3c89a98505079f7d4078915b7bbfaa1e23))
178
+
179
+ - New 'device_selected' signals to ScanControl, ScanGroupBox, DeviceLineEdit
180
+ ([`9801d27`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9801d2769eb0ee95c94ec0c011e1dac1407142ae))
181
+
182
+ ### Refactoring
183
+
184
+ - Redesign of scan selection and scan control boxes
185
+ ([`a69d287`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a69d2870e2b3539739781d741b27b8599c0f4abd))
186
+
187
+ - Move add/remove bundle to scan group box
188
+ ([`e3d0a7b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e3d0a7bbf9918dc16eb7227a178c310256ce570d))
189
+
190
+
191
+ ## v0.118.0 (2024-10-13)
192
+
193
+ ### Documentation
194
+
195
+ - **sphinx-build**: Adjusted pyside verion
196
+ ([`b236951`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b23695167ab969f754a058ffdccca2b40f00a008))
197
+
198
+ ### Features
199
+
200
+ - **image**: Image widget can take data from monitor_1d endpoint
201
+ ([`9ef1d1c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9ef1d1c9ac2178d9fa2e655942208f8abbdf5c1b))
202
+
203
+
204
+ ## v0.117.1 (2024-10-11)
205
+
206
+ ### Bug Fixes
207
+
208
+ - **FPS**: Qtimer cleanup leaking
209
+ ([`3a22392`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3a2239278075de7489ad10a58c31d7d89715e221))
@@ -1,10 +1,9 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 1.3.2
3
+ Version: 1.4.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
7
- License-File: LICENSE
8
7
  Classifier: Development Status :: 3 - Alpha
9
8
  Classifier: Programming Language :: Python :: 3
10
9
  Classifier: Topic :: Scientific/Engineering
@@ -2,10 +2,8 @@ from collections import defaultdict
2
2
 
3
3
  import numpy as np
4
4
  import pyqtgraph as pg
5
-
6
- # from qtpy.QtCore import QObject, pyqtSignal
7
- from qtpy.QtCore import QObject, Qt
8
- from qtpy.QtCore import Signal as pyqtSignal
5
+ from qtpy.QtCore import QObject, Qt, Signal, Slot
6
+ from qtpy.QtWidgets import QApplication
9
7
 
10
8
 
11
9
  class NonDownsamplingScatterPlotItem(pg.ScatterPlotItem):
@@ -17,14 +15,18 @@ class NonDownsamplingScatterPlotItem(pg.ScatterPlotItem):
17
15
 
18
16
 
19
17
  class Crosshair(QObject):
20
- positionChanged = pyqtSignal(tuple)
21
- positionClicked = pyqtSignal(tuple)
18
+ # QT Position of mouse cursor
19
+ positionChanged = Signal(tuple)
20
+ positionClicked = Signal(tuple)
21
+ # Plain crosshair position signals mapped to real coordinates
22
+ crosshairChanged = Signal(tuple)
23
+ crosshairClicked = Signal(tuple)
22
24
  # Signal for 1D plot
23
- coordinatesChanged1D = pyqtSignal(tuple)
24
- coordinatesClicked1D = pyqtSignal(tuple)
25
+ coordinatesChanged1D = Signal(tuple)
26
+ coordinatesClicked1D = Signal(tuple)
25
27
  # Signal for 2D plot
26
- coordinatesChanged2D = pyqtSignal(tuple)
27
- coordinatesClicked2D = pyqtSignal(tuple)
28
+ coordinatesChanged2D = Signal(tuple)
29
+ coordinatesClicked2D = Signal(tuple)
28
30
 
29
31
  def __init__(self, plot_item: pg.PlotItem, precision: int = 3, parent=None):
30
32
  """
@@ -47,11 +49,21 @@ class Crosshair(QObject):
47
49
  self.h_line.skip_auto_range = True
48
50
  self.plot_item.addItem(self.v_line, ignoreBounds=True)
49
51
  self.plot_item.addItem(self.h_line, ignoreBounds=True)
52
+
53
+ # Add TextItem to display coordinates
54
+ self.coord_label = pg.TextItem("", anchor=(1, 1), fill=(0, 0, 0, 100))
55
+ self.coord_label.setVisible(False) # Hide initially
56
+ self.coord_label.skip_auto_range = True
57
+ self.plot_item.addItem(self.coord_label)
58
+
59
+ # Signals to connect
50
60
  self.proxy = pg.SignalProxy(
51
61
  self.plot_item.scene().sigMouseMoved, rateLimit=60, slot=self.mouse_moved
52
62
  )
63
+ self.positionChanged.connect(self.update_coord_label)
53
64
  self.plot_item.scene().sigMouseClicked.connect(self.mouse_clicked)
54
65
 
66
+ # Connect signals from pyqtgraph right click menu
55
67
  self.plot_item.ctrl.derivativeCheck.checkStateChanged.connect(self.check_derivatives)
56
68
  self.plot_item.ctrl.logXCheck.checkStateChanged.connect(self.check_log)
57
69
  self.plot_item.ctrl.logYCheck.checkStateChanged.connect(self.check_log)
@@ -62,6 +74,44 @@ class Crosshair(QObject):
62
74
  self.marker_clicked_1d = {}
63
75
  self.marker_2d = None
64
76
  self.update_markers()
77
+ self.check_log()
78
+ self.check_derivatives()
79
+
80
+ self._connect_to_theme_change()
81
+
82
+ def _connect_to_theme_change(self):
83
+ """Connect to the theme change signal."""
84
+ qapp = QApplication.instance()
85
+ if hasattr(qapp, "theme_signal"):
86
+ qapp.theme_signal.theme_updated.connect(self._update_theme)
87
+ self._update_theme()
88
+
89
+ @Slot(str)
90
+ def _update_theme(self, theme: str | None = None):
91
+ """Update the theme."""
92
+ if theme is None:
93
+ qapp = QApplication.instance()
94
+ if hasattr(qapp, "theme"):
95
+ theme = qapp.theme.theme
96
+ else:
97
+ theme = "dark"
98
+ self.apply_theme(theme)
99
+
100
+ def apply_theme(self, theme: str):
101
+ """Apply the theme to the plot."""
102
+ if theme == "dark":
103
+ text_color = "w"
104
+ label_bg_color = (50, 50, 50, 150)
105
+ elif theme == "light":
106
+ text_color = "k"
107
+ label_bg_color = (240, 240, 240, 150)
108
+ else:
109
+ text_color = "w"
110
+ label_bg_color = (50, 50, 50, 150)
111
+
112
+ self.coord_label.setColor(text_color)
113
+ self.coord_label.fill = pg.mkBrush(label_bg_color)
114
+ self.coord_label.border = pg.mkPen(None)
65
115
 
66
116
  def update_markers(self):
67
117
  """Update the markers for the crosshair, creating new ones if necessary."""
@@ -151,21 +201,34 @@ class Crosshair(QObject):
151
201
 
152
202
  return None, None
153
203
 
154
- def closest_x_y_value(self, input_value: float, list_x: list, list_y: list) -> tuple:
204
+ def closest_x_y_value(self, input_x: float, list_x: list, list_y: list) -> tuple:
155
205
  """
156
206
  Find the closest x and y value to the input value.
157
207
 
158
208
  Args:
159
- input_value (float): Input value
209
+ input_x (float): Input value
160
210
  list_x (list): List of x values
161
211
  list_y (list): List of y values
162
212
 
163
213
  Returns:
164
214
  tuple: Closest x and y value
165
215
  """
166
- arr = np.asarray(list_x)
167
- i = (np.abs(arr - input_value)).argmin()
168
- return list_x[i], list_y[i]
216
+ # Convert lists to NumPy arrays
217
+ arr_x = np.asarray(list_x)
218
+
219
+ # Get the indices where x is not NaN
220
+ valid_indices = ~np.isnan(arr_x)
221
+
222
+ # Filter x array to exclude NaN values
223
+ filtered_x = arr_x[valid_indices]
224
+
225
+ # Find the index of the closest value in the filtered x array
226
+ closest_index = np.abs(filtered_x - input_x).argmin()
227
+
228
+ # Map back to the original index in the list_x and list_y arrays
229
+ original_index = np.where(valid_indices)[0][closest_index]
230
+
231
+ return list_x[original_index], list_y[original_index]
169
232
 
170
233
  def mouse_moved(self, event):
171
234
  """Handles the mouse moved event, updating the crosshair position and emitting signals.
@@ -175,17 +238,15 @@ class Crosshair(QObject):
175
238
  """
176
239
  pos = event[0]
177
240
  self.update_markers()
178
- self.positionChanged.emit((pos.x(), pos.y()))
179
241
  if self.plot_item.vb.sceneBoundingRect().contains(pos):
180
242
  mouse_point = self.plot_item.vb.mapSceneToView(pos)
181
- self.v_line.setPos(mouse_point.x())
182
- self.h_line.setPos(mouse_point.y())
183
-
184
243
  x, y = mouse_point.x(), mouse_point.y()
185
- if self.is_log_x:
186
- x = 10**x
187
- if self.is_log_y:
188
- y = 10**y
244
+ self.v_line.setPos(x)
245
+ self.h_line.setPos(y)
246
+ scaled_x, scaled_y = self.scale_emitted_coordinates(mouse_point.x(), mouse_point.y())
247
+ self.crosshairChanged.emit((scaled_x, scaled_y))
248
+ self.positionChanged.emit((x, y))
249
+
189
250
  x_snap_values, y_snap_values = self.snap_to_data(x, y)
190
251
  if x_snap_values is None or y_snap_values is None:
191
252
  return
@@ -202,7 +263,12 @@ class Crosshair(QObject):
202
263
  if x is None or y is None:
203
264
  continue
204
265
  self.marker_moved_1d[name].setData([x], [y])
205
- coordinate_to_emit = (name, round(x, self.precision), round(y, self.precision))
266
+ x_snapped_scaled, y_snapped_scaled = self.scale_emitted_coordinates(x, y)
267
+ coordinate_to_emit = (
268
+ name,
269
+ round(x_snapped_scaled, self.precision),
270
+ round(y_snapped_scaled, self.precision),
271
+ )
206
272
  self.coordinatesChanged1D.emit(coordinate_to_emit)
207
273
  elif isinstance(item, pg.ImageItem):
208
274
  name = item.config.monitor
@@ -229,12 +295,10 @@ class Crosshair(QObject):
229
295
  if self.plot_item.vb.sceneBoundingRect().contains(event._scenePos):
230
296
  mouse_point = self.plot_item.vb.mapSceneToView(event._scenePos)
231
297
  x, y = mouse_point.x(), mouse_point.y()
298
+ scaled_x, scaled_y = self.scale_emitted_coordinates(mouse_point.x(), mouse_point.y())
299
+ self.crosshairClicked.emit((scaled_x, scaled_y))
232
300
  self.positionClicked.emit((x, y))
233
301
 
234
- if self.is_log_x:
235
- x = 10**x
236
- if self.is_log_y:
237
- y = 10**y
238
302
  x_snap_values, y_snap_values = self.snap_to_data(x, y)
239
303
 
240
304
  if x_snap_values is None or y_snap_values is None:
@@ -252,7 +316,12 @@ class Crosshair(QObject):
252
316
  if x is None or y is None:
253
317
  continue
254
318
  self.marker_clicked_1d[name].setData([x], [y])
255
- coordinate_to_emit = (name, round(x, self.precision), round(y, self.precision))
319
+ x_snapped_scaled, y_snapped_scaled = self.scale_emitted_coordinates(x, y)
320
+ coordinate_to_emit = (
321
+ name,
322
+ round(x_snapped_scaled, self.precision),
323
+ round(y_snapped_scaled, self.precision),
324
+ )
256
325
  self.coordinatesClicked1D.emit(coordinate_to_emit)
257
326
  elif isinstance(item, pg.ImageItem):
258
327
  name = item.config.monitor
@@ -272,10 +341,40 @@ class Crosshair(QObject):
272
341
  for marker in self.marker_clicked_1d.values():
273
342
  marker.clear()
274
343
 
344
+ def scale_emitted_coordinates(self, x, y):
345
+ """Scales the emitted coordinates if the axes are in log scale.
346
+
347
+ Args:
348
+ x (float): The x-coordinate
349
+ y (float): The y-coordinate
350
+
351
+ Returns:
352
+ tuple: The scaled x and y coordinates
353
+ """
354
+ if self.is_log_x:
355
+ x = 10**x
356
+ if self.is_log_y:
357
+ y = 10**y
358
+ return x, y
359
+
360
+ def update_coord_label(self, pos: tuple):
361
+ """Updates the coordinate label based on the crosshair position and axis scales.
362
+
363
+ Args:
364
+ pos (tuple): The (x, y) position of the crosshair.
365
+ """
366
+ x, y = pos
367
+ x_scaled, y_scaled = self.scale_emitted_coordinates(x, y)
368
+
369
+ # # Update coordinate label
370
+ self.coord_label.setText(f"({x_scaled:.{self.precision}g}, {y_scaled:.{self.precision}g})")
371
+ self.coord_label.setPos(x, y)
372
+ self.coord_label.setVisible(True)
373
+
275
374
  def check_log(self):
276
375
  """Checks if the x or y axis is in log scale and updates the internal state accordingly."""
277
- self.is_log_x = self.plot_item.ctrl.logXCheck.isChecked()
278
- self.is_log_y = self.plot_item.ctrl.logYCheck.isChecked()
376
+ self.is_log_x = self.plot_item.axes["bottom"]["item"].logMode
377
+ self.is_log_y = self.plot_item.axes["left"]["item"].logMode
279
378
  self.clear_markers()
280
379
 
281
380
  def check_derivatives(self):
@@ -284,6 +383,8 @@ class Crosshair(QObject):
284
383
  self.clear_markers()
285
384
 
286
385
  def cleanup(self):
287
- self.v_line.deleteLater()
288
- self.h_line.deleteLater()
386
+ self.plot_item.removeItem(self.v_line)
387
+ self.plot_item.removeItem(self.h_line)
388
+ self.plot_item.removeItem(self.coord_label)
389
+
289
390
  self.clear_markers()
@@ -397,8 +397,8 @@ class BECPlotBase(BECConnector, pg.GraphicsLayout):
397
397
  """Hook the crosshair to all plots."""
398
398
  if self.crosshair is None:
399
399
  self.crosshair = Crosshair(self.plot_item, precision=3)
400
- self.crosshair.positionChanged.connect(self.crosshair_position_changed)
401
- self.crosshair.positionClicked.connect(self.crosshair_position_clicked)
400
+ self.crosshair.crosshairChanged.connect(self.crosshair_position_changed)
401
+ self.crosshair.crosshairClicked.connect(self.crosshair_position_clicked)
402
402
  self.crosshair.coordinatesChanged1D.connect(self.crosshair_coordinates_changed)
403
403
  self.crosshair.coordinatesClicked1D.connect(self.crosshair_coordinates_clicked)
404
404
  self.crosshair.coordinatesChanged2D.connect(self.crosshair_coordinates_changed)
@@ -407,8 +407,8 @@ class BECPlotBase(BECConnector, pg.GraphicsLayout):
407
407
  def unhook_crosshair(self) -> None:
408
408
  """Unhook the crosshair from all plots."""
409
409
  if self.crosshair is not None:
410
- self.crosshair.positionChanged.disconnect(self.crosshair_position_changed)
411
- self.crosshair.positionClicked.disconnect(self.crosshair_position_clicked)
410
+ self.crosshair.crosshairChanged.disconnect(self.crosshair_position_changed)
411
+ self.crosshair.crosshairClicked.disconnect(self.crosshair_position_clicked)
412
412
  self.crosshair.coordinatesChanged1D.disconnect(self.crosshair_coordinates_changed)
413
413
  self.crosshair.coordinatesClicked1D.disconnect(self.crosshair_coordinates_clicked)
414
414
  self.crosshair.coordinatesChanged2D.disconnect(self.crosshair_coordinates_changed)
@@ -321,7 +321,7 @@ class ScanGroupBox(QGroupBox):
321
321
  for i in range(self.layout.columnCount()):
322
322
  widget = self.layout.itemAtPosition(1, i).widget()
323
323
  if isinstance(widget, DeviceLineEdit) and device_object:
324
- value = widget.get_device()
324
+ value = widget.get_current_device().name
325
325
  else:
326
326
  value = WidgetIO.get_value(widget)
327
327
  kwargs[widget.arg_name] = value
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "1.3.2"
7
+ version = "1.4.0"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [