bec-widgets 1.6.0__tar.gz → 1.8.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 (316) hide show
  1. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/CHANGELOG.md +61 -59
  2. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/PKG-INFO +1 -1
  3. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/client.py +7 -1
  4. bec_widgets-1.8.0/bec_widgets/qt_utils/round_frame.py +177 -0
  5. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/qt_utils/toolbar.py +94 -6
  6. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/console/console.py +140 -5
  7. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/pyproject.toml +1 -1
  8. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.git_hooks/pre-commit +0 -0
  9. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.gitignore +0 -0
  10. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.gitlab/issue_templates/bug_report_template.md +0 -0
  11. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.gitlab/issue_templates/documentation_update_template.md +0 -0
  12. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.gitlab/issue_templates/feature_request_template.md +0 -0
  13. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.gitlab/merge_request_templates/default.md +0 -0
  14. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.gitlab-ci.yml +0 -0
  15. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.pylintrc +0 -0
  16. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/.readthedocs.yaml +0 -0
  17. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/LICENSE +0 -0
  18. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/README.md +0 -0
  19. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/__init__.py +0 -0
  20. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/applications/__init__.py +0 -0
  21. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/applications/alignment/__init__.py +0 -0
  22. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
  23. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +0 -0
  24. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +0 -0
  25. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/applications/bec_app.py +0 -0
  26. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
  27. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/assets/app_icons/alignment_1d.png +0 -0
  28. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/assets/app_icons/bec_widgets_icon.png +0 -0
  29. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/__init__.py +0 -0
  30. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/auto_updates.py +0 -0
  31. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/client_utils.py +0 -0
  32. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/generate_cli.py +0 -0
  33. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/rpc_register.py +0 -0
  34. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/rpc_wigdet_handler.py +0 -0
  35. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/cli/server.py +0 -0
  36. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/__init__.py +0 -0
  37. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/general_app/__init__.py +0 -0
  38. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/general_app/general_app.py +0 -0
  39. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/general_app/general_app.ui +0 -0
  40. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/general_app/web_links.py +0 -0
  41. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/jupyter_console/__init__.py +0 -0
  42. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/jupyter_console/jupyter_console_window.py +0 -0
  43. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/plugin_example_pyside/__init__.py +0 -0
  44. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/plugin_example_pyside/main.py +0 -0
  45. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/plugin_example_pyside/registertictactoe.py +0 -0
  46. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/plugin_example_pyside/taskmenuextension.pyproject +0 -0
  47. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/plugin_example_pyside/tictactoe.py +0 -0
  48. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +0 -0
  49. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/examples/plugin_example_pyside/tictactoetaskmenu.py +0 -0
  50. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/qt_utils/__init__.py +0 -0
  51. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/qt_utils/compact_popup.py +0 -0
  52. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/qt_utils/error_popups.py +0 -0
  53. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/qt_utils/palette_viewer.py +0 -0
  54. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/qt_utils/redis_message_waiter.py +0 -0
  55. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/qt_utils/settings_dialog.py +0 -0
  56. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/tests/__init__.py +0 -0
  57. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/tests/utils.py +0 -0
  58. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/__init__.py +0 -0
  59. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/bec_connector.py +0 -0
  60. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/bec_designer.py +0 -0
  61. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/bec_dispatcher.py +0 -0
  62. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/bec_signal_proxy.py +0 -0
  63. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/bec_table.py +0 -0
  64. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/bec_widget.py +0 -0
  65. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/colors.py +0 -0
  66. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/container_utils.py +0 -0
  67. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/crosshair.py +0 -0
  68. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/entry_validator.py +0 -0
  69. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/filter_io.py +0 -0
  70. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/fps_counter.py +0 -0
  71. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/generate_designer_plugin.py +0 -0
  72. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/layout_manager.py +0 -0
  73. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/linear_region_selector.py +0 -0
  74. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/ophyd_kind_util.py +0 -0
  75. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/plot_indicator_items.py +0 -0
  76. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/plugin_templates/plugin.template +0 -0
  77. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/plugin_templates/register.template +0 -0
  78. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/plugin_utils.py +0 -0
  79. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/reference_utils.py +0 -0
  80. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/rpc_decorator.py +0 -0
  81. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/thread_checker.py +0 -0
  82. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/ui_loader.py +0 -0
  83. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/validator_delegate.py +0 -0
  84. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/widget_io.py +0 -0
  85. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/utils/yaml_dialog.py +0 -0
  86. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/__init__.py +0 -0
  87. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/__init__.py +0 -0
  88. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/dock/__init__.py +0 -0
  89. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/dock/dock.py +0 -0
  90. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/dock/dock_area.py +0 -0
  91. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/dock/dock_area.pyproject +0 -0
  92. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/dock/dock_area_plugin.py +0 -0
  93. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/dock/register_dock_area.py +0 -0
  94. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/__init__.py +0 -0
  95. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/figure.py +0 -0
  96. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/__init__.py +0 -0
  97. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.py +0 -0
  98. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/axis_settings.ui +0 -0
  99. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/image/__init__.py +0 -0
  100. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/image/image.py +0 -0
  101. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/image/image_item.py +0 -0
  102. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/image/image_processor.py +0 -0
  103. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py +0 -0
  104. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py +0 -0
  105. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py +0 -0
  106. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py +0 -0
  107. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/plot_base.py +0 -0
  108. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/waveform/__init__.py +0 -0
  109. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py +0 -0
  110. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py +0 -0
  111. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/main_window/__init__.py +0 -0
  112. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/containers/main_window/main_window.py +0 -0
  113. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/__init__.py +0 -0
  114. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/__init__.py +0 -0
  115. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_abort/__init__.py +0 -0
  116. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject +0 -0
  117. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py +0 -0
  118. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_abort/button_abort.py +0 -0
  119. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py +0 -0
  120. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_reset/__init__.py +0 -0
  121. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_reset/button_reset.py +0 -0
  122. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py +0 -0
  123. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject +0 -0
  124. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py +0 -0
  125. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_resume/__init__.py +0 -0
  126. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_resume/button_resume.py +0 -0
  127. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py +0 -0
  128. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject +0 -0
  129. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py +0 -0
  130. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/stop_button/__init__.py +0 -0
  131. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py +0 -0
  132. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.py +0 -0
  133. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject +0 -0
  134. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py +0 -0
  135. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/__init__.py +0 -0
  136. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/position_indicator/__init__.py +0 -0
  137. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py +0 -0
  138. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject +0 -0
  139. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py +0 -0
  140. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py +0 -0
  141. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/__init__.py +0 -0
  142. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.py +0 -0
  143. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.pyproject +0 -0
  144. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.ui +0 -0
  145. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_plugin.py +0 -0
  146. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.py +0 -0
  147. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.pyproject +0 -0
  148. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.ui +0 -0
  149. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line_plugin.py +0 -0
  150. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_box.py +0 -0
  151. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_control_line.py +0 -0
  152. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_group/__init__.py +0 -0
  153. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py +0 -0
  154. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject +0 -0
  155. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py +0 -0
  156. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py +0 -0
  157. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/__init__.py +0 -0
  158. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/base_classes/__init__.py +0 -0
  159. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py +0 -0
  160. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py +0 -0
  161. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_combobox/__init__.py +0 -0
  162. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject +0 -0
  163. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py +0 -0
  164. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py +0 -0
  165. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py +0 -0
  166. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py +0 -0
  167. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py +0 -0
  168. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject +0 -0
  169. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py +0 -0
  170. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py +0 -0
  171. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py +0 -0
  172. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combobox.py +0 -0
  173. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py +0 -0
  174. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.pyproject +0 -0
  175. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox_plugin.py +0 -0
  176. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py +0 -0
  177. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py +0 -0
  178. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py +0 -0
  179. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject +0 -0
  180. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +0 -0
  181. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/scan_control/__init__.py +0 -0
  182. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/scan_control/register_scan_control.py +0 -0
  183. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/scan_control/scan_control.py +0 -0
  184. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/scan_control/scan_control.pyproject +0 -0
  185. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/scan_control/scan_control_plugin.py +0 -0
  186. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/control/scan_control/scan_group_box.py +0 -0
  187. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/__init__.py +0 -0
  188. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/dap_combo_box/__init__.py +0 -0
  189. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py +0 -0
  190. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject +0 -0
  191. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py +0 -0
  192. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py +0 -0
  193. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/lmfit_dialog/__init__.py +0 -0
  194. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject +0 -0
  195. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py +0 -0
  196. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py +0 -0
  197. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui +0 -0
  198. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui +0 -0
  199. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py +0 -0
  200. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/__init__.py +0 -0
  201. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/console/__init__.py +0 -0
  202. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/console/console.pyproject +0 -0
  203. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/console/console_plugin.py +0 -0
  204. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/console/register_console.py +0 -0
  205. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/jupyter_console/__init__.py +0 -0
  206. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py +0 -0
  207. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/text_box/__init__.py +0 -0
  208. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/text_box/register_text_box.py +0 -0
  209. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/text_box/text_box.py +0 -0
  210. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/text_box/text_box.pyproject +0 -0
  211. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/text_box/text_box_plugin.py +0 -0
  212. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/vscode/__init__.py +0 -0
  213. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py +0 -0
  214. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject +0 -0
  215. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py +0 -0
  216. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/vscode/vscode.py +0 -0
  217. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/website/__init__.py +0 -0
  218. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/website/register_website_widget.py +0 -0
  219. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/website/website.py +0 -0
  220. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/website/website_widget.pyproject +0 -0
  221. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/editors/website/website_widget_plugin.py +0 -0
  222. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/__init__.py +0 -0
  223. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/image/__init__.py +0 -0
  224. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/image/bec_image_widget.pyproject +0 -0
  225. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py +0 -0
  226. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/image/image_widget.py +0 -0
  227. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/image/register_bec_image_widget.py +0 -0
  228. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/__init__.py +0 -0
  229. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject +0 -0
  230. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py +0 -0
  231. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/__init__.py +0 -0
  232. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py +0 -0
  233. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui +0 -0
  234. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/motor_map_widget.py +0 -0
  235. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py +0 -0
  236. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/multi_waveform/__init__.py +0 -0
  237. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject +0 -0
  238. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py +0 -0
  239. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui +0 -0
  240. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py +0 -0
  241. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py +0 -0
  242. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/__init__.py +0 -0
  243. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject +0 -0
  244. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py +0 -0
  245. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py +0 -0
  246. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/waveform_popups/__init__.py +0 -0
  247. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/__init__.py +0 -0
  248. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py +0 -0
  249. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui +0 -0
  250. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py +0 -0
  251. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +0 -0
  252. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/plots/waveform/waveform_widget.py +0 -0
  253. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/__init__.py +0 -0
  254. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/bec_progressbar/__init__.py +0 -0
  255. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject +0 -0
  256. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py +0 -0
  257. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py +0 -0
  258. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py +0 -0
  259. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/ring_progress_bar/__init__.py +0 -0
  260. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py +0 -0
  261. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring.py +0 -0
  262. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py +0 -0
  263. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject +0 -0
  264. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py +0 -0
  265. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/__init__.py +0 -0
  266. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_queue/__init__.py +0 -0
  267. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_queue/bec_queue.py +0 -0
  268. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject +0 -0
  269. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py +0 -0
  270. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_queue/register_bec_queue.py +0 -0
  271. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_status_box/__init__.py +0 -0
  272. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.py +0 -0
  273. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject +0 -0
  274. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py +0 -0
  275. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py +0 -0
  276. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/bec_status_box/status_item.py +0 -0
  277. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/__init__.py +0 -0
  278. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/device_browser.py +0 -0
  279. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/device_browser.pyproject +0 -0
  280. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/device_browser.ui +0 -0
  281. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/device_browser_plugin.py +0 -0
  282. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/device_item/__init__.py +0 -0
  283. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/device_item/device_item.py +0 -0
  284. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/services/device_browser/register_device_browser.py +0 -0
  285. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/__init__.py +0 -0
  286. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/spinner/__init__.py +0 -0
  287. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/spinner/register_spinner_widget.py +0 -0
  288. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/spinner/spinner.py +0 -0
  289. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject +0 -0
  290. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py +0 -0
  291. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/toggle/__init__.py +0 -0
  292. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/toggle/register_toggle_switch.py +0 -0
  293. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/toggle/toggle.py +0 -0
  294. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject +0 -0
  295. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py +0 -0
  296. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/__init__.py +0 -0
  297. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/color_button/__init__.py +0 -0
  298. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/color_button/color_button.py +0 -0
  299. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject +0 -0
  300. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py +0 -0
  301. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/color_button/register_color_button.py +0 -0
  302. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py +0 -0
  303. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py +0 -0
  304. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject +0 -0
  305. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py +0 -0
  306. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py +0 -0
  307. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py +0 -0
  308. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject +0 -0
  309. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py +0 -0
  310. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py +0 -0
  311. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py +0 -0
  312. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py +0 -0
  313. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py +0 -0
  314. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject +0 -0
  315. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py +0 -0
  316. {bec_widgets-1.6.0 → bec_widgets-1.8.0}/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py +0 -0
@@ -1,14 +1,51 @@
1
1
  # CHANGELOG
2
2
 
3
3
 
4
- ## v1.6.0 (2024-11-27)
4
+ ## v1.8.0 (2024-12-10)
5
+
6
+ ### Features
7
+
8
+ - **modular_toolbar**: Material icons can be added/removed/hide/show/update dynamically
9
+ ([`a55134c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a55134c3bfcbda6dc2d33a17cf5a83df8be3fa7f))
10
+
11
+ - **modular_toolbar**: Orientation setting
12
+ ([`5fdb232`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5fdb2325ae970a7ecf4e2f4960710029891ab943))
13
+
14
+ - **round_frame**: Rounded frame for plot widgets and contrast adjustments
15
+ ([`6a36ca5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6a36ca512d88f2b4fe916ac991e4f17ae0baffab))
16
+
17
+ ### Testing
18
+
19
+ - **modular_toolbar**: Tests added
20
+ ([`9370351`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9370351abbd7a151065ea9300c500d5bea8ee4f6))
21
+
22
+
23
+ ## v1.7.0 (2024-12-02)
5
24
 
6
25
  ### Bug Fixes
7
26
 
8
- - **tests**: Make use of BECDockArea with client mixin to start server and use it in tests
9
- ([`da18c2c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/da18c2ceecf9aeaf0e0ea9b78f4c867b27b9c314))
27
+ - **tests**: Add test for Console widget
28
+ ([`da579b6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/da579b6d213bcdf28c40c1a9e4e2535fdde824fb))
10
29
 
11
- Depending on the test, auto-updates are enabled or not.
30
+ ### Features
31
+
32
+ - **console**: Add "prompt" signal to inform when shell is at prompt
33
+ ([`3aeb0b6`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3aeb0b66fbeb03d3d0ee60e108cc6b98fd9aa9b9))
34
+
35
+ - **console**: Add 'terminate' and 'send_ctrl_c' methods to Console
36
+ ([`02086ae`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/02086aeae09233ec4e6ccc0e6a17f2b078d500b8))
37
+
38
+ .terminate() ends the started process, sending SIGTERM signal. If process is not dead after optional
39
+ timeout, SIGKILL is sent. .send_ctrl_c() sends SIGINT to the child process, and waits for prompt
40
+ until optional timeout is reached. Timeouts raise 'TimeoutError' exception.
41
+
42
+
43
+ ## v1.6.0 (2024-11-27)
44
+
45
+ ### Bug Fixes
46
+
47
+ - Add back accidentally removed variables
48
+ ([`e998352`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e9983521ed2a1c04af048a55ece70a1943a84313))
12
49
 
13
50
  - Differentiate click and drag for DeviceItem, adapt tests accordingly
14
51
  ([`cffcdf2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cffcdf292363249bcc7efa9d130431d0bc727fda))
@@ -17,12 +54,6 @@ This fixes the blocking "QDrag.exec_()" on Linux, indeed before the drag'n'drop
17
54
  started with a simple click and it was waiting for drop forever. Now there are 2 different cases,
18
55
  click or drag'n'drop - the drag'n'drop test actually moves the mouse and releases the button.
19
56
 
20
- - **server**: Use dock area by default
21
- ([`2fe7f5e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2fe7f5e1510a5ea72676045e6ea3485e6b11c220))
22
-
23
- - **rpc**: Gui hide/show also hide/show all floating docks
24
- ([`c27d058`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c27d058b01fe604eccec76454e39360122e48515))
25
-
26
57
  - Do not quit automatically when last window is "closed"
27
58
  ([`96e255e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/96e255e4ef394eb79006a66d13e06775ae235667))
28
59
 
@@ -31,8 +62,16 @@ Qt confuses closed and hidden
31
62
  - No need to call inspect.signature - it can fail on methods coming from C (like Qt methods)
32
63
  ([`6029246`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/60292465e9e52d3248ae681c68c07298b9b3ce14))
33
64
 
34
- - Add back accidentally removed variables
35
- ([`e998352`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e9983521ed2a1c04af048a55ece70a1943a84313))
65
+ - **rpc**: Gui hide/show also hide/show all floating docks
66
+ ([`c27d058`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c27d058b01fe604eccec76454e39360122e48515))
67
+
68
+ - **server**: Use dock area by default
69
+ ([`2fe7f5e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2fe7f5e1510a5ea72676045e6ea3485e6b11c220))
70
+
71
+ - **tests**: Make use of BECDockArea with client mixin to start server and use it in tests
72
+ ([`da18c2c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/da18c2ceecf9aeaf0e0ea9b78f4c867b27b9c314))
73
+
74
+ Depending on the test, auto-updates are enabled or not.
36
75
 
37
76
  ### Features
38
77
 
@@ -40,26 +79,26 @@ Qt confuses closed and hidden
40
79
  BECDockArea
41
80
  ([`31d8703`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/31d87036c9801e639a7ca6fc003c90e0c4edb19d))
42
81
 
43
- - Add rpc_id member to client objects
44
- ([`3ba0b1d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3ba0b1daf5b83da840e90fbbc063ed7b86ebe99b))
45
-
46
- - **client**: Add show()/hide() methods to "gui" object
47
- ([`e68e2b5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e68e2b5978339475b97555c3e20795807932fbc9))
48
-
49
- - **server**: Add main window, with proper gui_id derived from given id
50
- ([`daf6ea0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/daf6ea0159c9ffc7b53bb7ae6b9abc16a302972c))
82
+ - Add '--hide' argument to BEC GUI server
83
+ ([`1f60fec`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f60fec7201ed252d7e49bf16f2166ee7f6bed6a))
51
84
 
52
85
  - Add main window container widget
53
86
  ([`f80ec33`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f80ec33ae5a261dbcab901ae30f4cc802316e554))
54
87
 
88
+ - Add rpc_id member to client objects
89
+ ([`3ba0b1d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3ba0b1daf5b83da840e90fbbc063ed7b86ebe99b))
90
+
55
91
  - Asynchronous .start() for GUI
56
92
  ([`2047e48`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2047e484d5a4b2f5ea494a1e49035b35b1bbde35))
57
93
 
58
94
  - Do not take focus when GUI is loaded
59
95
  ([`1f71d8e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f71d8e5eded9952f9b34bfc427e2ff44cf5fc18))
60
96
 
61
- - Add '--hide' argument to BEC GUI server
62
- ([`1f60fec`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f60fec7201ed252d7e49bf16f2166ee7f6bed6a))
97
+ - **client**: Add show()/hide() methods to "gui" object
98
+ ([`e68e2b5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e68e2b5978339475b97555c3e20795807932fbc9))
99
+
100
+ - **server**: Add main window, with proper gui_id derived from given id
101
+ ([`daf6ea0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/daf6ea0159c9ffc7b53bb7ae6b9abc16a302972c))
63
102
 
64
103
 
65
104
  ## v1.5.3 (2024-11-21)
@@ -171,40 +210,3 @@ Qt confuses closed and hidden
171
210
 
172
211
  - Pyside6 version fixed 6.7.2
173
212
  ([`c6e48ec`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c6e48ec1fe5aaee6a7c7a6f930f1520cd439cdb2))
174
-
175
-
176
- ## v1.3.1 (2024-10-31)
177
-
178
- ### Bug Fixes
179
-
180
- - **ophyd_kind_util**: Kind enums are imported from the bec widget util class
181
- ([`940ee65`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/940ee6552c1ee8d9b4e4a74c62351f2e133ab678))
182
-
183
-
184
- ## v1.3.0 (2024-10-30)
185
-
186
- ### Bug Fixes
187
-
188
- - **colors**: Extend color map validation for matplotlib and colorcet maps (if available)
189
- ([`14dd8c5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/14dd8c5b2947c92f6643b888d71975e4e8d4ee88))
190
-
191
- ### Features
192
-
193
- - **colormap_button**: Colormap button with menu to select colormap filtered by the colormap type
194
- ([`b039933`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/b039933405e2fbe92bd81bd0748e79e8d443a741))
195
-
196
-
197
- ## v1.2.0 (2024-10-25)
198
-
199
- ### Features
200
-
201
- - **colors**: Evenly spaced color generation + new golden ratio calculation
202
- ([`40c9fea`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/40c9fea35f869ef52e05948dd1989bcd99f602e0))
203
-
204
- ### Refactoring
205
-
206
- - Add bec_lib version to statusbox
207
- ([`5d4b86e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5d4b86e1c6e1800051afce4f991153e370767fa6))
208
-
209
-
210
- ## v1.1.0 (2024-10-25)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: bec_widgets
3
- Version: 1.6.0
3
+ Version: 1.8.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,6 @@ class Widgets(str, enum.Enum):
19
19
  BECColorMapWidget = "BECColorMapWidget"
20
20
  BECDockArea = "BECDockArea"
21
21
  BECImageWidget = "BECImageWidget"
22
- BECMainWindow = "BECMainWindow"
23
22
  BECMotorMapWidget = "BECMotorMapWidget"
24
23
  BECMultiWaveformWidget = "BECMultiWaveformWidget"
25
24
  BECProgressBar = "BECProgressBar"
@@ -64,6 +63,13 @@ class AbortButton(RPCBase):
64
63
  Get all registered RPC objects.
65
64
  """
66
65
 
66
+ @property
67
+ @rpc_call
68
+ def _rpc_id(self) -> "str":
69
+ """
70
+ Get the RPC ID of the widget.
71
+ """
72
+
67
73
 
68
74
  class BECColorMapWidget(RPCBase):
69
75
  @property
@@ -0,0 +1,177 @@
1
+ import pyqtgraph as pg
2
+ from qtpy.QtCore import Property
3
+ from qtpy.QtWidgets import QApplication, QFrame, QVBoxLayout, QWidget
4
+
5
+ from bec_widgets.utils.bec_widget import BECWidget
6
+ from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton
7
+
8
+
9
+ class RoundedFrame(BECWidget, QFrame):
10
+ """
11
+ A custom QFrame with rounded corners and optional theme updates.
12
+ The frame can contain any QWidget, however it is mainly designed to wrap PlotWidgets to provide a consistent look and feel with other BEC Widgets.
13
+ """
14
+
15
+ def __init__(
16
+ self,
17
+ parent=None,
18
+ content_widget: QWidget = None,
19
+ background_color: str = None,
20
+ theme_update: bool = True,
21
+ radius: int = 10,
22
+ **kwargs,
23
+ ):
24
+ super().__init__(**kwargs)
25
+ QFrame.__init__(self, parent)
26
+
27
+ self.background_color = background_color
28
+ self.theme_update = theme_update if background_color is None else False
29
+ self._radius = radius
30
+
31
+ # Apply rounded frame styling
32
+ self.setObjectName("roundedFrame")
33
+ self.update_style()
34
+
35
+ # Create a layout for the frame
36
+ layout = QVBoxLayout(self)
37
+ layout.setContentsMargins(5, 5, 5, 5) # Set 5px margin
38
+
39
+ # Add the content widget to the layout
40
+ if content_widget:
41
+ layout.addWidget(content_widget)
42
+
43
+ # Store reference to the content widget
44
+ self.content_widget = content_widget
45
+
46
+ # Automatically apply initial styles to the PlotWidget if applicable
47
+ if isinstance(content_widget, pg.PlotWidget):
48
+ self.apply_plot_widget_style()
49
+
50
+ self._connect_to_theme_change()
51
+
52
+ def apply_theme(self, theme: str):
53
+ """
54
+ Apply the theme to the frame and its content if theme updates are enabled.
55
+ """
56
+ if not self.theme_update:
57
+ return
58
+
59
+ # Update background color based on the theme
60
+ if theme == "light":
61
+ self.background_color = "#e9ecef" # Subtle contrast for light mode
62
+ else:
63
+ self.background_color = "#141414" # Dark mode
64
+
65
+ self.update_style()
66
+
67
+ # Update PlotWidget's background color and axis styles if applicable
68
+ if isinstance(self.content_widget, pg.PlotWidget):
69
+ self.apply_plot_widget_style()
70
+
71
+ @Property(int)
72
+ def radius(self):
73
+ """Radius of the rounded corners."""
74
+ return self._radius
75
+
76
+ @radius.setter
77
+ def radius(self, value: int):
78
+ self._radius = value
79
+ self.update_style()
80
+
81
+ def update_style(self):
82
+ """
83
+ Update the style of the frame based on the background color.
84
+ """
85
+ if self.background_color:
86
+ self.setStyleSheet(
87
+ f"""
88
+ QFrame#roundedFrame {{
89
+ background-color: {self.background_color};
90
+ border-radius: {self._radius}; /* Rounded corners */
91
+ }}
92
+ """
93
+ )
94
+
95
+ def apply_plot_widget_style(self, border: str = "none"):
96
+ """
97
+ Automatically apply background, border, and axis styles to the PlotWidget.
98
+
99
+ Args:
100
+ border (str): Border style (e.g., 'none', '1px solid red').
101
+ """
102
+ if isinstance(self.content_widget, pg.PlotWidget):
103
+ # Sync PlotWidget's background color with the RoundedFrame's background color
104
+ self.content_widget.setBackground(self.background_color)
105
+
106
+ # Calculate contrast-optimized axis and label colors
107
+ if self.background_color == "#e9ecef": # Light mode
108
+ label_color = "#000000"
109
+ axis_color = "#666666"
110
+ else: # Dark mode
111
+ label_color = "#FFFFFF"
112
+ axis_color = "#CCCCCC"
113
+
114
+ # Apply axis label and tick colors
115
+ plot_item = self.content_widget.getPlotItem()
116
+ plot_item.getAxis("left").setPen(pg.mkPen(color=axis_color))
117
+ plot_item.getAxis("bottom").setPen(pg.mkPen(color=axis_color))
118
+ plot_item.getAxis("left").setTextPen(pg.mkPen(color=label_color))
119
+ plot_item.getAxis("bottom").setTextPen(pg.mkPen(color=label_color))
120
+
121
+ # Apply border style via stylesheet
122
+ self.content_widget.setStyleSheet(
123
+ f"""
124
+ PlotWidget {{
125
+ border: {border}; /* Explicitly set the border */
126
+ }}
127
+ """
128
+ )
129
+
130
+
131
+ class ExampleApp(QWidget): # pragma: no cover
132
+ def __init__(self):
133
+ super().__init__()
134
+ self.setWindowTitle("Rounded Plots Example")
135
+
136
+ # Main layout
137
+ layout = QVBoxLayout(self)
138
+
139
+ dark_button = DarkModeButton()
140
+
141
+ # Create PlotWidgets
142
+ plot1 = pg.PlotWidget()
143
+ plot1.plot([1, 3, 2, 4, 6, 5], pen="r")
144
+
145
+ plot2 = pg.PlotWidget()
146
+ plot2.plot([1, 2, 4, 8, 16, 32], pen="r")
147
+
148
+ # Wrap PlotWidgets in RoundedFrame
149
+ rounded_plot1 = RoundedFrame(content_widget=plot1, theme_update=True)
150
+ rounded_plot2 = RoundedFrame(content_widget=plot2, theme_update=True)
151
+ round = RoundedFrame()
152
+
153
+ # Add to layout
154
+ layout.addWidget(dark_button)
155
+ layout.addWidget(rounded_plot1)
156
+ layout.addWidget(rounded_plot2)
157
+ layout.addWidget(round)
158
+
159
+ self.setLayout(layout)
160
+
161
+ # Simulate theme change after 2 seconds
162
+ from qtpy.QtCore import QTimer
163
+
164
+ def change_theme():
165
+ rounded_plot1.apply_theme("light")
166
+ rounded_plot2.apply_theme("dark")
167
+
168
+ QTimer.singleShot(100, change_theme)
169
+
170
+
171
+ if __name__ == "__main__": # pragma: no cover
172
+ app = QApplication([])
173
+
174
+ window = ExampleApp()
175
+ window.show()
176
+
177
+ app.exec()
@@ -261,17 +261,31 @@ class ExpandableMenuAction(ToolBarAction):
261
261
 
262
262
  class ModularToolBar(QToolBar):
263
263
  """Modular toolbar with optional automatic initialization.
264
+
264
265
  Args:
265
266
  parent (QWidget, optional): The parent widget of the toolbar. Defaults to None.
266
- actions (list[ToolBarAction], optional): A list of action creators to populate the toolbar. Defaults to None.
267
+ actions (dict, optional): A dictionary of action creators to populate the toolbar. Defaults to None.
267
268
  target_widget (QWidget, optional): The widget that the actions will target. Defaults to None.
269
+ orientation (Literal["horizontal", "vertical"], optional): The initial orientation of the toolbar. Defaults to "horizontal".
270
+ background_color (str, optional): The background color of the toolbar. Defaults to "rgba(0, 0, 0, 0)" - transparent background.
268
271
  """
269
272
 
270
- def __init__(self, parent=None, actions: dict | None = None, target_widget=None):
273
+ def __init__(
274
+ self,
275
+ parent=None,
276
+ actions: dict | None = None,
277
+ target_widget=None,
278
+ orientation: Literal["horizontal", "vertical"] = "horizontal",
279
+ background_color: str = "rgba(0, 0, 0, 0)",
280
+ ):
271
281
  super().__init__(parent)
272
282
 
273
283
  self.widgets = defaultdict(dict)
274
- self.set_background_color()
284
+ self.background_color = background_color
285
+ self.set_background_color(self.background_color)
286
+
287
+ # Set the initial orientation
288
+ self.set_orientation(orientation)
275
289
 
276
290
  if actions is not None and target_widget is not None:
277
291
  self.populate_toolbar(actions, target_widget)
@@ -280,7 +294,7 @@ class ModularToolBar(QToolBar):
280
294
  """Populates the toolbar with a set of actions.
281
295
 
282
296
  Args:
283
- actions (list[ToolBarAction]): A list of action creators to populate the toolbar.
297
+ actions (dict): A dictionary of action creators to populate the toolbar.
284
298
  target_widget (QWidget): The widget that the actions will target.
285
299
  """
286
300
  self.clear()
@@ -288,9 +302,83 @@ class ModularToolBar(QToolBar):
288
302
  action.add_to_toolbar(self, target_widget)
289
303
  self.widgets[action_id] = action
290
304
 
291
- def set_background_color(self):
305
+ def set_background_color(self, color: str = "rgba(0, 0, 0, 0)"):
306
+ """
307
+ Sets the background color and other appearance settings.
308
+
309
+ Args:
310
+ color(str): The background color of the toolbar.
311
+ """
292
312
  self.setIconSize(QSize(20, 20))
293
313
  self.setMovable(False)
294
314
  self.setFloatable(False)
295
315
  self.setContentsMargins(0, 0, 0, 0)
296
- self.setStyleSheet("QToolBar { background-color: rgba(0, 0, 0, 0); border: none; }")
316
+ self.background_color = color
317
+ self.setStyleSheet(f"QToolBar {{ background-color: {color}; border: none; }}")
318
+
319
+ def set_orientation(self, orientation: Literal["horizontal", "vertical"]):
320
+ """Sets the orientation of the toolbar.
321
+
322
+ Args:
323
+ orientation (Literal["horizontal", "vertical"]): The desired orientation of the toolbar.
324
+ """
325
+ if orientation == "horizontal":
326
+ self.setOrientation(Qt.Horizontal)
327
+ elif orientation == "vertical":
328
+ self.setOrientation(Qt.Vertical)
329
+ else:
330
+ raise ValueError("Orientation must be 'horizontal' or 'vertical'.")
331
+
332
+ def update_material_icon_colors(self, new_color: str | tuple | QColor):
333
+ """
334
+ Updates the color of all MaterialIconAction icons in the toolbar.
335
+
336
+ Args:
337
+ new_color (str | tuple | QColor): The new color for the icons.
338
+ """
339
+ for action in self.widgets.values():
340
+ if isinstance(action, MaterialIconAction):
341
+ action.color = new_color
342
+ # Refresh the icon
343
+ updated_icon = action.get_icon()
344
+ action.action.setIcon(updated_icon)
345
+
346
+ def add_action(self, action_id: str, action: ToolBarAction, target_widget: QWidget):
347
+ """
348
+ Adds a new action to the toolbar dynamically.
349
+
350
+ Args:
351
+ action_id (str): Unique identifier for the action.
352
+ action (ToolBarAction): The action to add to the toolbar.
353
+ target_widget (QWidget): The target widget for the action.
354
+ """
355
+ if action_id in self.widgets:
356
+ raise ValueError(f"Action with ID '{action_id}' already exists.")
357
+ action.add_to_toolbar(self, target_widget)
358
+ self.widgets[action_id] = action
359
+
360
+ def hide_action(self, action_id: str):
361
+ """
362
+ Hides a specific action on the toolbar.
363
+
364
+ Args:
365
+ action_id (str): Unique identifier for the action to hide.
366
+ """
367
+ if action_id not in self.widgets:
368
+ raise ValueError(f"Action with ID '{action_id}' does not exist.")
369
+ action = self.widgets[action_id]
370
+ if hasattr(action, "action") and isinstance(action.action, QAction):
371
+ action.action.setVisible(False)
372
+
373
+ def show_action(self, action_id: str):
374
+ """
375
+ Shows a specific action on the toolbar.
376
+
377
+ Args:
378
+ action_id (str): Unique identifier for the action to show.
379
+ """
380
+ if action_id not in self.widgets:
381
+ raise ValueError(f"Action with ID '{action_id}' does not exist.")
382
+ action = self.widgets[action_id]
383
+ if hasattr(action, "action") and isinstance(action.action, QAction):
384
+ action.action.setVisible(True)