From aab0229a4067ad626de919e38a5c8a2e9e7b03c2 Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Wed, 13 Nov 2024 13:48:55 +0100 Subject: [PATCH] refactor(widgets): widget module structure reorganised --- .../alignment/alignment_1d/alignment_1d.py | 27 +++------- bec_widgets/cli/client.py | 53 ++++--------------- bec_widgets/cli/server.py | 5 +- .../jupyter_console/jupyter_console_window.py | 8 ++- bec_widgets/qt_utils/palette_viewer.py | 2 +- bec_widgets/utils/generate_designer_plugin.py | 2 +- bec_widgets/utils/plugin_utils.py | 4 ++ .../{base_classes => containers}/__init__.py | 0 .../widgets/{ => containers}/dock/__init__.py | 0 .../widgets/{ => containers}/dock/dock.py | 0 .../{ => containers}/dock/dock_area.py | 25 ++++----- .../{ => containers}/dock/dock_area.pyproject | 0 .../{ => containers}/dock/dock_area_plugin.py | 2 +- .../dock/register_dock_area.py | 2 +- .../{ => containers}/figure/__init__.py | 0 .../widgets/{ => containers}/figure/figure.py | 17 +++--- .../figure/plots}/__init__.py | 0 .../figure/plots/axis_settings.py | 0 .../figure/plots/axis_settings.ui | 0 .../figure/plots/image}/__init__.py | 0 .../figure/plots/image/image.py | 11 ++-- .../figure/plots/image/image_item.py | 7 ++- .../figure/plots/image/image_processor.py | 0 .../figure/plots/motor_map}/__init__.py | 0 .../figure/plots/motor_map/motor_map.py | 4 +- .../figure/plots/multi_waveform}/__init__.py | 0 .../plots/multi_waveform/multi_waveform.py | 4 +- .../figure/plots/plot_base.py | 0 .../figure/plots/waveform}/__init__.py | 0 .../figure/plots/waveform/waveform.py | 4 +- .../figure/plots/waveform/waveform_curve.py | 4 +- .../{button_resume => control}/__init__.py | 0 .../buttons}/__init__.py | 0 .../buttons/button_abort}/__init__.py | 0 .../button_abort/abort_button.pyproject | 0 .../button_abort/abort_button_plugin.py | 2 +- .../buttons}/button_abort/button_abort.py | 1 + .../button_abort/register_abort_button.py | 4 +- .../buttons/button_reset}/__init__.py | 0 .../buttons}/button_reset/button_reset.py | 1 + .../button_reset/register_reset_button.py | 4 +- .../button_reset/reset_button.pyproject | 0 .../button_reset/reset_button_plugin.py | 2 +- .../buttons/button_resume}/__init__.py | 0 .../buttons}/button_resume/button_resume.py | 1 + .../button_resume/register_resume_button.py | 4 +- .../button_resume/resume_button.pyproject | 0 .../button_resume/resume_button_plugin.py | 2 +- .../buttons/stop_button}/__init__.py | 0 .../stop_button/register_stop_button.py | 2 +- .../buttons}/stop_button/stop_button.py | 1 + .../stop_button/stop_button.pyproject | 0 .../stop_button/stop_button_plugin.py | 2 +- .../device_control}/__init__.py | 0 .../position_indicator}/__init__.py | 0 .../position_indicator/position_indicator.py | 2 +- .../position_indicator.pyproject | 0 .../position_indicator_plugin.py | 4 +- .../register_position_indicator.py | 2 +- .../positioner_box}/__init__.py | 0 .../positioner_box/positioner_box.py | 9 ++-- .../positioner_box/positioner_box.pyproject | 0 .../positioner_box/positioner_box.ui | 0 .../positioner_box/positioner_box_plugin.py | 2 +- .../positioner_box/positioner_control_line.py | 3 +- .../positioner_control_line.pyproject | 0 .../positioner_box/positioner_control_line.ui | 0 .../positioner_control_line_plugin.py | 4 +- .../positioner_box/register_positioner_box.py | 4 +- .../register_positioner_control_line.py | 2 +- .../positioner_group}/__init__.py | 0 .../positioner_group/positioner_group.py | 6 +-- .../positioner_group.pyproject | 0 .../positioner_group_plugin.py | 4 +- .../register_positioner_group.py | 4 +- .../device_input}/__init__.py | 0 .../device_input/base_classes}/__init__.py | 0 .../base_classes/device_input_base.py | 0 .../base_classes/device_signal_input_base.py | 0 .../device_input/device_combobox}/__init__.py | 0 .../device_combo_box.pyproject | 0 .../device_combo_box_plugin.py | 2 +- .../device_combobox/device_combobox.py | 3 +- .../register_device_combo_box.py | 4 +- .../device_line_edit}/__init__.py | 0 .../device_line_edit/device_line_edit.py | 7 ++- .../device_line_edit.pyproject | 0 .../device_line_edit_plugin.py | 4 +- .../register_device_line_edit.py | 4 +- .../device_input/signal_combobox}/__init__.py | 0 .../register_signal_combobox.py | 4 +- .../signal_combobox/signal_combobox.py | 5 +- .../signal_combobox/signal_combobox.pyproject | 0 .../signal_combobox/signal_combobox_plugin.py | 2 +- .../signal_line_edit}/__init__.py | 0 .../register_signal_line_edit.py | 4 +- .../signal_line_edit/signal_line_edit.py | 5 +- .../signal_line_edit.pyproject | 0 .../signal_line_edit_plugin.py | 4 +- .../{ => control}/scan_control/__init__.py | 0 .../scan_control/register_scan_control.py | 2 +- .../scan_control/scan_control.py | 9 ++-- .../scan_control/scan_control.pyproject | 0 .../scan_control/scan_control_plugin.py | 2 +- .../scan_control/scan_group_box.py | 6 ++- .../widgets/{lmfit_dialog => dap}/__init__.py | 0 .../dap_combo_box}/__init__.py | 0 .../{ => dap}/dap_combo_box/dap_combo_box.py | 2 +- .../dap_combo_box/dap_combo_box.pyproject | 0 .../dap_combo_box/dap_combo_box_plugin.py | 2 +- .../dap_combo_box/register_dap_combo_box.py | 2 +- .../lmfit_dialog}/__init__.py | 0 .../lmfit_dialog/lm_fit_dialog.pyproject | 0 .../lmfit_dialog/lm_fit_dialog_plugin.py | 2 +- .../{ => dap}/lmfit_dialog/lmfit_dialog.py | 1 + .../lmfit_dialog/lmfit_dialog_compact.ui | 0 .../lmfit_dialog/lmfit_dialog_vertical.ui | 0 .../lmfit_dialog/register_lm_fit_dialog.py | 2 +- .../{multi_waveform => editors}/__init__.py | 0 .../console}/__init__.py | 0 .../widgets/{ => editors}/console/console.py | 1 + .../{ => editors}/console/console.pyproject | 0 .../{ => editors}/console/console_plugin.py | 2 +- .../{ => editors}/console/register_console.py | 2 +- .../jupyter_console}/__init__.py | 0 .../jupyter_console/jupyter_console.py | 0 .../text_box}/__init__.py | 0 .../text_box/register_text_box.py | 2 +- .../{ => editors}/text_box/text_box.py | 1 + .../{ => editors}/text_box/text_box.pyproject | 0 .../{ => editors}/text_box/text_box_plugin.py | 2 +- .../vscode}/__init__.py | 0 .../vscode/register_vs_code_editor.py | 2 +- .../vscode/vs_code_editor.pyproject | 0 .../vscode/vs_code_editor_plugin.py | 2 +- .../widgets/{ => editors}/vscode/vscode.py | 4 +- .../website}/__init__.py | 0 .../website/register_website_widget.py | 2 +- .../widgets/{ => editors}/website/website.py | 1 + .../website/website_widget.pyproject | 0 .../website/website_widget_plugin.py | 2 +- .../widgets/{spinner => plots}/__init__.py | 0 .../{stop_button => plots/image}/__init__.py | 0 .../image/bec_image_widget.pyproject | 0 .../image/bec_image_widget_plugin.py | 2 +- .../widgets/{ => plots}/image/image_widget.py | 13 ++--- .../image/register_bec_image_widget.py | 2 +- .../{text_box => plots/motor_map}/__init__.py | 0 .../motor_map/bec_motor_map_widget.pyproject | 0 .../motor_map/bec_motor_map_widget_plugin.py | 2 +- .../motor_map/motor_map_dialog}/__init__.py | 0 .../motor_map_dialog/motor_map_settings.py | 0 .../motor_map_dialog/motor_map_settings.ui | 0 .../{ => plots}/motor_map/motor_map_widget.py | 12 ++--- .../register_bec_motor_map_widget.py | 4 +- .../multi_waveform}/__init__.py | 0 .../bec_multi_waveform_widget.pyproject | 0 .../bec_multi_waveform_widget_plugin.py | 2 +- .../multi_waveform/multi_waveform_controls.ui | 0 .../multi_waveform/multi_waveform_widget.py | 16 +++--- .../register_bec_multi_waveform_widget.py | 2 +- .../widgets/{ => plots}/waveform/__init__.py | 0 .../waveform/bec_waveform_widget.pyproject | 0 .../waveform/bec_waveform_widget_plugin.py | 2 +- .../waveform/register_bec_waveform_widget.py | 4 +- .../waveform/waveform_popups/__init__.py | 0 .../waveform_popups/curve_dialog/__init__.py | 0 .../curve_dialog/curve_dialog.py | 8 +-- .../curve_dialog/curve_dialog.ui | 0 .../dap_summary_dialog/__init__.py | 0 .../dap_summary_dialog/dap_summary_dialog.py | 8 +-- .../{ => plots}/waveform/waveform_widget.py | 15 +++--- .../widgets/{website => progress}/__init__.py | 0 .../progress/bec_progressbar/__init__.py | 0 .../bec_progress_bar.pyproject | 0 .../bec_progress_bar_plugin.py | 2 +- .../bec_progressbar/bec_progressbar.py | 1 + .../register_bec_progress_bar.py | 4 +- .../ring_progress_bar/__init__.py | 0 .../register_ring_progress_bar.py | 4 +- .../{ => progress}/ring_progress_bar/ring.py | 0 .../ring_progress_bar/ring_progress_bar.py | 3 +- .../ring_progress_bar.pyproject | 0 .../ring_progress_bar_plugin.py | 2 +- bec_widgets/widgets/services/__init__.py | 0 .../widgets/services/bec_queue/__init__.py | 0 .../{ => services}/bec_queue/bec_queue.py | 9 ++-- .../bec_queue/bec_queue.pyproject | 0 .../bec_queue/bec_queue_plugin.py | 2 +- .../bec_queue/register_bec_queue.py | 2 +- .../services/bec_status_box/__init__.py | 0 .../bec_status_box/bec_status_box.py | 6 +-- .../bec_status_box/bec_status_box.pyproject | 0 .../bec_status_box/bec_status_box_plugin.py | 2 +- .../bec_status_box/register_bec_status_box.py | 2 +- .../bec_status_box/status_item.py | 0 .../services/device_browser/__init__.py | 0 .../device_browser/device_browser.py | 6 +-- .../device_browser/device_browser.pyproject | 0 .../device_browser/device_browser.ui | 0 .../device_browser/device_browser_plugin.py | 2 +- .../device_browser/device_item/__init__.py | 0 .../device_browser/device_item/device_item.py | 0 .../device_browser/register_device_browser.py | 4 +- bec_widgets/widgets/utility/__init__.py | 0 .../widgets/utility/spinner/__init__.py | 0 .../spinner/register_spinner_widget.py | 2 +- .../widgets/{ => utility}/spinner/spinner.py | 1 + .../spinner/spinner_widget.pyproject | 0 .../spinner/spinner_widget_plugin.py | 2 +- .../widgets/utility/toggle/__init__.py | 0 .../toggle/register_toggle_switch.py | 2 +- .../widgets/{ => utility}/toggle/toggle.py | 1 + .../toggle/toggle_switch.pyproject | 0 .../toggle/toggle_switch_plugin.py | 2 +- .../widgets/utility/visual/__init__.py | 0 .../utility/visual/color_button/__init__.py | 0 .../visual}/color_button/color_button.py | 1 + .../color_button/color_button.pyproject | 0 .../color_button/color_button_plugin.py | 2 +- .../color_button/register_color_button.py | 4 +- .../visual/colormap_selector/__init__.py | 0 .../colormap_selector/colormap_selector.py | 1 + .../colormap_selector.pyproject | 0 .../colormap_selector_plugin.py | 2 +- .../register_colormap_selector.py | 2 +- .../visual/colormap_widget/__init__.py | 0 .../bec_color_map_widget.pyproject | 0 .../bec_color_map_widget_plugin.py | 2 +- .../colormap_widget/colormap_widget.py | 1 + .../register_bec_color_map_widget.py | 2 +- .../visual/dark_mode_button/__init__.py | 0 .../dark_mode_button/dark_mode_button.py | 1 + .../dark_mode_button.pyproject | 0 .../dark_mode_button_plugin.py | 2 +- .../register_dark_mode_button.py | 4 +- tests/end-2-end/conftest.py | 5 +- tests/end-2-end/test_scan_control_e2e.py | 2 +- tests/unit_tests/test_abort_button.py | 2 +- tests/unit_tests/test_bec_connector.py | 2 +- tests/unit_tests/test_bec_dispatcher.py | 2 - tests/unit_tests/test_bec_dock.py | 4 +- tests/unit_tests/test_bec_figure.py | 12 +++-- tests/unit_tests/test_bec_image.py | 5 +- tests/unit_tests/test_bec_image_widget.py | 6 +-- tests/unit_tests/test_bec_motor_map.py | 7 ++- tests/unit_tests/test_bec_progressbar.py | 2 +- tests/unit_tests/test_bec_queue.py | 2 +- tests/unit_tests/test_bec_status_box.py | 5 +- tests/unit_tests/test_color_map_selector.py | 2 +- tests/unit_tests/test_color_validation.py | 2 +- tests/unit_tests/test_colormap_widget.py | 2 +- tests/unit_tests/test_crosshair.py | 5 +- tests/unit_tests/test_dap_combobox.py | 4 +- tests/unit_tests/test_dark_mode_button.py | 4 +- tests/unit_tests/test_device_browser.py | 4 +- tests/unit_tests/test_device_input_base.py | 6 ++- tests/unit_tests/test_device_input_widgets.py | 8 +-- tests/unit_tests/test_device_signal_input.py | 14 +++-- tests/unit_tests/test_filter_io.py | 6 ++- tests/unit_tests/test_lmfit_dialog.py | 2 +- tests/unit_tests/test_motor_map_widget.py | 6 +-- tests/unit_tests/test_multi_waveform.py | 2 +- .../unit_tests/test_multi_waveform_widget.py | 4 +- tests/unit_tests/test_palette_viewer.py | 2 +- tests/unit_tests/test_plot_base.py | 3 +- tests/unit_tests/test_plugin_utils.py | 7 ++- tests/unit_tests/test_position_indicator.py | 4 +- tests/unit_tests/test_positioner_box.py | 23 +++++--- tests/unit_tests/test_reset_button.py | 2 +- tests/unit_tests/test_resume_button.py | 2 +- tests/unit_tests/test_ring_progress_bar.py | 6 +-- tests/unit_tests/test_rpc_server.py | 3 +- tests/unit_tests/test_scan_control.py | 2 +- .../unit_tests/test_scan_control_group_box.py | 3 +- tests/unit_tests/test_spinner.py | 2 +- tests/unit_tests/test_stop_button.py | 2 +- tests/unit_tests/test_text_box_widget.py | 2 +- tests/unit_tests/test_toggle.py | 2 +- .../unit_tests/test_utils_bec_signal_proxy.py | 4 +- .../unit_tests/test_utils_plot_indicators.py | 3 +- tests/unit_tests/test_vscode_widget.py | 22 ++++---- tests/unit_tests/test_waveform1d.py | 8 ++- tests/unit_tests/test_waveform_widget.py | 20 +++---- tests/unit_tests/test_website_widget.py | 2 +- 285 files changed, 418 insertions(+), 364 deletions(-) rename bec_widgets/widgets/{base_classes => containers}/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/dock/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/dock/dock.py (100%) rename bec_widgets/widgets/{ => containers}/dock/dock_area.py (93%) rename bec_widgets/widgets/{ => containers}/dock/dock_area.pyproject (100%) rename bec_widgets/widgets/{ => containers}/dock/dock_area_plugin.py (95%) rename bec_widgets/widgets/{ => containers}/dock/register_dock_area.py (81%) rename bec_widgets/widgets/{ => containers}/figure/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/figure/figure.py (98%) rename bec_widgets/widgets/{bec_progressbar => containers/figure/plots}/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/figure/plots/axis_settings.py (100%) rename bec_widgets/widgets/{ => containers}/figure/plots/axis_settings.ui (100%) rename bec_widgets/widgets/{bec_queue => containers/figure/plots/image}/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/figure/plots/image/image.py (98%) rename bec_widgets/widgets/{ => containers}/figure/plots/image/image_item.py (98%) rename bec_widgets/widgets/{ => containers}/figure/plots/image/image_processor.py (100%) rename bec_widgets/widgets/{bec_status_box => containers/figure/plots/motor_map}/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/figure/plots/motor_map/motor_map.py (98%) rename bec_widgets/widgets/{button_abort => containers/figure/plots/multi_waveform}/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/figure/plots/multi_waveform/multi_waveform.py (98%) rename bec_widgets/widgets/{ => containers}/figure/plots/plot_base.py (100%) rename bec_widgets/widgets/{button_reset => containers/figure/plots/waveform}/__init__.py (100%) rename bec_widgets/widgets/{ => containers}/figure/plots/waveform/waveform.py (99%) rename bec_widgets/widgets/{ => containers}/figure/plots/waveform/waveform_curve.py (98%) rename bec_widgets/widgets/{button_resume => control}/__init__.py (100%) rename bec_widgets/widgets/{color_button => control/buttons}/__init__.py (100%) rename bec_widgets/widgets/{colormap_selector => control/buttons/button_abort}/__init__.py (100%) rename bec_widgets/widgets/{ => control/buttons}/button_abort/abort_button.pyproject (100%) rename bec_widgets/widgets/{ => control/buttons}/button_abort/abort_button_plugin.py (93%) rename bec_widgets/widgets/{ => control/buttons}/button_abort/button_abort.py (99%) rename bec_widgets/widgets/{ => control/buttons}/button_abort/register_abort_button.py (76%) rename bec_widgets/widgets/{colormap_widget => control/buttons/button_reset}/__init__.py (100%) rename bec_widgets/widgets/{ => control/buttons}/button_reset/button_reset.py (99%) rename bec_widgets/widgets/{ => control/buttons}/button_reset/register_reset_button.py (76%) rename bec_widgets/widgets/{ => control/buttons}/button_reset/reset_button.pyproject (100%) rename bec_widgets/widgets/{ => control/buttons}/button_reset/reset_button_plugin.py (93%) rename bec_widgets/widgets/{dap_combo_box => control/buttons/button_resume}/__init__.py (100%) rename bec_widgets/widgets/{ => control/buttons}/button_resume/button_resume.py (98%) rename bec_widgets/widgets/{ => control/buttons}/button_resume/register_resume_button.py (75%) rename bec_widgets/widgets/{ => control/buttons}/button_resume/resume_button.pyproject (100%) rename bec_widgets/widgets/{ => control/buttons}/button_resume/resume_button_plugin.py (93%) rename bec_widgets/widgets/{dark_mode_button => control/buttons/stop_button}/__init__.py (100%) rename bec_widgets/widgets/{ => control/buttons}/stop_button/register_stop_button.py (79%) rename bec_widgets/widgets/{ => control/buttons}/stop_button/stop_button.py (99%) rename bec_widgets/widgets/{ => control/buttons}/stop_button/stop_button.pyproject (100%) rename bec_widgets/widgets/{ => control/buttons}/stop_button/stop_button_plugin.py (93%) rename bec_widgets/widgets/{device_browser => control/device_control}/__init__.py (100%) rename bec_widgets/widgets/{device_combobox => control/device_control/position_indicator}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_control}/position_indicator/position_indicator.py (99%) rename bec_widgets/widgets/{ => control/device_control}/position_indicator/position_indicator.pyproject (100%) rename bec_widgets/widgets/{ => control/device_control}/position_indicator/position_indicator_plugin.py (91%) rename bec_widgets/widgets/{ => control/device_control}/position_indicator/register_position_indicator.py (80%) rename bec_widgets/widgets/{device_line_edit => control/device_control/positioner_box}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_box.py (98%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_box.pyproject (100%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_box.ui (100%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_box_plugin.py (93%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_control_line.py (87%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_control_line.pyproject (100%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_control_line.ui (100%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/positioner_control_line_plugin.py (91%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/register_positioner_box.py (74%) rename bec_widgets/widgets/{ => control/device_control}/positioner_box/register_positioner_control_line.py (80%) rename bec_widgets/widgets/{figure/plots => control/device_control/positioner_group}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_control}/positioner_group/positioner_group.py (96%) rename bec_widgets/widgets/{ => control/device_control}/positioner_group/positioner_group.pyproject (100%) rename bec_widgets/widgets/{ => control/device_control}/positioner_group/positioner_group_plugin.py (92%) rename bec_widgets/widgets/{ => control/device_control}/positioner_group/register_positioner_group.py (73%) rename bec_widgets/widgets/{figure/plots/image => control/device_input}/__init__.py (100%) rename bec_widgets/widgets/{figure/plots/motor_map => control/device_input/base_classes}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_input}/base_classes/device_input_base.py (100%) rename bec_widgets/widgets/{ => control/device_input}/base_classes/device_signal_input_base.py (100%) rename bec_widgets/widgets/{figure/plots/multi_waveform => control/device_input/device_combobox}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_input}/device_combobox/device_combo_box.pyproject (100%) rename bec_widgets/widgets/{ => control/device_input}/device_combobox/device_combo_box_plugin.py (93%) rename bec_widgets/widgets/{ => control/device_input}/device_combobox/device_combobox.py (98%) rename bec_widgets/widgets/{ => control/device_input}/device_combobox/register_device_combo_box.py (74%) rename bec_widgets/widgets/{figure/plots/waveform => control/device_input/device_line_edit}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_input}/device_line_edit/device_line_edit.py (96%) rename bec_widgets/widgets/{ => control/device_input}/device_line_edit/device_line_edit.pyproject (100%) rename bec_widgets/widgets/{ => control/device_input}/device_line_edit/device_line_edit_plugin.py (92%) rename bec_widgets/widgets/{ => control/device_input}/device_line_edit/register_device_line_edit.py (74%) rename bec_widgets/widgets/{image => control/device_input/signal_combobox}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_input}/signal_combobox/register_signal_combobox.py (74%) rename bec_widgets/widgets/{ => control/device_input}/signal_combobox/signal_combobox.py (96%) rename bec_widgets/widgets/{ => control/device_input}/signal_combobox/signal_combobox.pyproject (100%) rename bec_widgets/widgets/{ => control/device_input}/signal_combobox/signal_combobox_plugin.py (92%) rename bec_widgets/widgets/{jupyter_console => control/device_input/signal_line_edit}/__init__.py (100%) rename bec_widgets/widgets/{ => control/device_input}/signal_line_edit/register_signal_line_edit.py (74%) rename bec_widgets/widgets/{ => control/device_input}/signal_line_edit/signal_line_edit.py (97%) rename bec_widgets/widgets/{ => control/device_input}/signal_line_edit/signal_line_edit.pyproject (100%) rename bec_widgets/widgets/{ => control/device_input}/signal_line_edit/signal_line_edit_plugin.py (91%) rename bec_widgets/widgets/{ => control}/scan_control/__init__.py (100%) rename bec_widgets/widgets/{ => control}/scan_control/register_scan_control.py (80%) rename bec_widgets/widgets/{ => control}/scan_control/scan_control.py (98%) rename bec_widgets/widgets/{ => control}/scan_control/scan_control.pyproject (100%) rename bec_widgets/widgets/{ => control}/scan_control/scan_control_plugin.py (93%) rename bec_widgets/widgets/{ => control}/scan_control/scan_group_box.py (98%) rename bec_widgets/widgets/{lmfit_dialog => dap}/__init__.py (100%) rename bec_widgets/widgets/{motor_map => dap/dap_combo_box}/__init__.py (100%) rename bec_widgets/widgets/{ => dap}/dap_combo_box/dap_combo_box.py (99%) rename bec_widgets/widgets/{ => dap}/dap_combo_box/dap_combo_box.pyproject (100%) rename bec_widgets/widgets/{ => dap}/dap_combo_box/dap_combo_box_plugin.py (94%) rename bec_widgets/widgets/{ => dap}/dap_combo_box/register_dap_combo_box.py (80%) rename bec_widgets/widgets/{motor_map/motor_map_dialog => dap/lmfit_dialog}/__init__.py (100%) rename bec_widgets/widgets/{ => dap}/lmfit_dialog/lm_fit_dialog.pyproject (100%) rename bec_widgets/widgets/{ => dap}/lmfit_dialog/lm_fit_dialog_plugin.py (94%) rename bec_widgets/widgets/{ => dap}/lmfit_dialog/lmfit_dialog.py (99%) rename bec_widgets/widgets/{ => dap}/lmfit_dialog/lmfit_dialog_compact.ui (100%) rename bec_widgets/widgets/{ => dap}/lmfit_dialog/lmfit_dialog_vertical.ui (100%) rename bec_widgets/widgets/{ => dap}/lmfit_dialog/register_lm_fit_dialog.py (80%) rename bec_widgets/widgets/{multi_waveform => editors}/__init__.py (100%) rename bec_widgets/widgets/{position_indicator => editors/console}/__init__.py (100%) rename bec_widgets/widgets/{ => editors}/console/console.py (99%) rename bec_widgets/widgets/{ => editors}/console/console.pyproject (100%) rename bec_widgets/widgets/{ => editors}/console/console_plugin.py (95%) rename bec_widgets/widgets/{ => editors}/console/register_console.py (82%) rename bec_widgets/widgets/{positioner_box => editors/jupyter_console}/__init__.py (100%) rename bec_widgets/widgets/{ => editors}/jupyter_console/jupyter_console.py (100%) rename bec_widgets/widgets/{positioner_group => editors/text_box}/__init__.py (100%) rename bec_widgets/widgets/{ => editors}/text_box/register_text_box.py (82%) rename bec_widgets/widgets/{ => editors}/text_box/text_box.py (99%) rename bec_widgets/widgets/{ => editors}/text_box/text_box.pyproject (100%) rename bec_widgets/widgets/{ => editors}/text_box/text_box_plugin.py (94%) rename bec_widgets/widgets/{signal_combobox => editors/vscode}/__init__.py (100%) rename bec_widgets/widgets/{ => editors}/vscode/register_vs_code_editor.py (80%) rename bec_widgets/widgets/{ => editors}/vscode/vs_code_editor.pyproject (100%) rename bec_widgets/widgets/{ => editors}/vscode/vs_code_editor_plugin.py (95%) rename bec_widgets/widgets/{ => editors}/vscode/vscode.py (98%) rename bec_widgets/widgets/{signal_line_edit => editors/website}/__init__.py (100%) rename bec_widgets/widgets/{ => editors}/website/register_website_widget.py (80%) rename bec_widgets/widgets/{ => editors}/website/website.py (99%) rename bec_widgets/widgets/{ => editors}/website/website_widget.pyproject (100%) rename bec_widgets/widgets/{ => editors}/website/website_widget_plugin.py (94%) rename bec_widgets/widgets/{spinner => plots}/__init__.py (100%) rename bec_widgets/widgets/{stop_button => plots/image}/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/image/bec_image_widget.pyproject (100%) rename bec_widgets/widgets/{ => plots}/image/bec_image_widget_plugin.py (94%) rename bec_widgets/widgets/{ => plots}/image/image_widget.py (97%) rename bec_widgets/widgets/{ => plots}/image/register_bec_image_widget.py (80%) rename bec_widgets/widgets/{text_box => plots/motor_map}/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/motor_map/bec_motor_map_widget.pyproject (100%) rename bec_widgets/widgets/{ => plots}/motor_map/bec_motor_map_widget_plugin.py (93%) rename bec_widgets/widgets/{toggle => plots/motor_map/motor_map_dialog}/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/motor_map/motor_map_dialog/motor_map_settings.py (100%) rename bec_widgets/widgets/{ => plots}/motor_map/motor_map_dialog/motor_map_settings.ui (100%) rename bec_widgets/widgets/{ => plots}/motor_map/motor_map_widget.py (94%) rename bec_widgets/widgets/{ => plots}/motor_map/register_bec_motor_map_widget.py (76%) rename bec_widgets/widgets/{vscode => plots/multi_waveform}/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/multi_waveform/bec_multi_waveform_widget.pyproject (100%) rename bec_widgets/widgets/{ => plots}/multi_waveform/bec_multi_waveform_widget_plugin.py (92%) rename bec_widgets/widgets/{ => plots}/multi_waveform/multi_waveform_controls.ui (100%) rename bec_widgets/widgets/{ => plots}/multi_waveform/multi_waveform_widget.py (96%) rename bec_widgets/widgets/{ => plots}/multi_waveform/register_bec_multi_waveform_widget.py (82%) rename bec_widgets/widgets/{ => plots}/waveform/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/waveform/bec_waveform_widget.pyproject (100%) rename bec_widgets/widgets/{ => plots}/waveform/bec_waveform_widget_plugin.py (94%) rename bec_widgets/widgets/{ => plots}/waveform/register_bec_waveform_widget.py (76%) rename bec_widgets/widgets/{ => plots}/waveform/waveform_popups/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/waveform/waveform_popups/curve_dialog/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/waveform/waveform_popups/curve_dialog/curve_dialog.py (97%) rename bec_widgets/widgets/{ => plots}/waveform/waveform_popups/curve_dialog/curve_dialog.ui (100%) rename bec_widgets/widgets/{ => plots}/waveform/waveform_popups/dap_summary_dialog/__init__.py (100%) rename bec_widgets/widgets/{ => plots}/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py (78%) rename bec_widgets/widgets/{ => plots}/waveform/waveform_widget.py (97%) rename bec_widgets/widgets/{website => progress}/__init__.py (100%) create mode 100644 bec_widgets/widgets/progress/bec_progressbar/__init__.py rename bec_widgets/widgets/{ => progress}/bec_progressbar/bec_progress_bar.pyproject (100%) rename bec_widgets/widgets/{ => progress}/bec_progressbar/bec_progress_bar_plugin.py (93%) rename bec_widgets/widgets/{ => progress}/bec_progressbar/bec_progressbar.py (99%) rename bec_widgets/widgets/{ => progress}/bec_progressbar/register_bec_progress_bar.py (76%) rename bec_widgets/widgets/{ => progress}/ring_progress_bar/__init__.py (100%) rename bec_widgets/widgets/{ => progress}/ring_progress_bar/register_ring_progress_bar.py (75%) rename bec_widgets/widgets/{ => progress}/ring_progress_bar/ring.py (100%) rename bec_widgets/widgets/{ => progress}/ring_progress_bar/ring_progress_bar.py (99%) rename bec_widgets/widgets/{ => progress}/ring_progress_bar/ring_progress_bar.pyproject (100%) rename bec_widgets/widgets/{ => progress}/ring_progress_bar/ring_progress_bar_plugin.py (93%) create mode 100644 bec_widgets/widgets/services/__init__.py create mode 100644 bec_widgets/widgets/services/bec_queue/__init__.py rename bec_widgets/widgets/{ => services}/bec_queue/bec_queue.py (95%) rename bec_widgets/widgets/{ => services}/bec_queue/bec_queue.pyproject (100%) rename bec_widgets/widgets/{ => services}/bec_queue/bec_queue_plugin.py (94%) rename bec_widgets/widgets/{ => services}/bec_queue/register_bec_queue.py (81%) create mode 100644 bec_widgets/widgets/services/bec_status_box/__init__.py rename bec_widgets/widgets/{ => services}/bec_status_box/bec_status_box.py (99%) rename bec_widgets/widgets/{ => services}/bec_status_box/bec_status_box.pyproject (100%) rename bec_widgets/widgets/{ => services}/bec_status_box/bec_status_box_plugin.py (94%) rename bec_widgets/widgets/{ => services}/bec_status_box/register_bec_status_box.py (79%) rename bec_widgets/widgets/{ => services}/bec_status_box/status_item.py (100%) create mode 100644 bec_widgets/widgets/services/device_browser/__init__.py rename bec_widgets/widgets/{ => services}/device_browser/device_browser.py (95%) rename bec_widgets/widgets/{ => services}/device_browser/device_browser.pyproject (100%) rename bec_widgets/widgets/{ => services}/device_browser/device_browser.ui (100%) rename bec_widgets/widgets/{ => services}/device_browser/device_browser_plugin.py (93%) rename bec_widgets/widgets/{ => services}/device_browser/device_item/__init__.py (100%) rename bec_widgets/widgets/{ => services}/device_browser/device_item/device_item.py (100%) rename bec_widgets/widgets/{ => services}/device_browser/register_device_browser.py (76%) create mode 100644 bec_widgets/widgets/utility/__init__.py create mode 100644 bec_widgets/widgets/utility/spinner/__init__.py rename bec_widgets/widgets/{ => utility}/spinner/register_spinner_widget.py (80%) rename bec_widgets/widgets/{ => utility}/spinner/spinner.py (99%) rename bec_widgets/widgets/{ => utility}/spinner/spinner_widget.pyproject (100%) rename bec_widgets/widgets/{ => utility}/spinner/spinner_widget_plugin.py (94%) create mode 100644 bec_widgets/widgets/utility/toggle/__init__.py rename bec_widgets/widgets/{ => utility}/toggle/register_toggle_switch.py (81%) rename bec_widgets/widgets/{ => utility}/toggle/toggle.py (99%) rename bec_widgets/widgets/{ => utility}/toggle/toggle_switch.pyproject (100%) rename bec_widgets/widgets/{ => utility}/toggle/toggle_switch_plugin.py (95%) create mode 100644 bec_widgets/widgets/utility/visual/__init__.py create mode 100644 bec_widgets/widgets/utility/visual/color_button/__init__.py rename bec_widgets/widgets/{ => utility/visual}/color_button/color_button.py (99%) rename bec_widgets/widgets/{ => utility/visual}/color_button/color_button.pyproject (100%) rename bec_widgets/widgets/{ => utility/visual}/color_button/color_button_plugin.py (93%) rename bec_widgets/widgets/{ => utility/visual}/color_button/register_color_button.py (76%) create mode 100644 bec_widgets/widgets/utility/visual/colormap_selector/__init__.py rename bec_widgets/widgets/{ => utility/visual}/colormap_selector/colormap_selector.py (99%) rename bec_widgets/widgets/{ => utility/visual}/colormap_selector/colormap_selector.pyproject (100%) rename bec_widgets/widgets/{ => utility/visual}/colormap_selector/colormap_selector_plugin.py (92%) rename bec_widgets/widgets/{ => utility/visual}/colormap_selector/register_colormap_selector.py (81%) create mode 100644 bec_widgets/widgets/utility/visual/colormap_widget/__init__.py rename bec_widgets/widgets/{ => utility/visual}/colormap_widget/bec_color_map_widget.pyproject (100%) rename bec_widgets/widgets/{ => utility/visual}/colormap_widget/bec_color_map_widget_plugin.py (92%) rename bec_widgets/widgets/{ => utility/visual}/colormap_widget/colormap_widget.py (99%) rename bec_widgets/widgets/{ => utility/visual}/colormap_widget/register_bec_color_map_widget.py (81%) create mode 100644 bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py rename bec_widgets/widgets/{ => utility/visual}/dark_mode_button/dark_mode_button.py (99%) rename bec_widgets/widgets/{ => utility/visual}/dark_mode_button/dark_mode_button.pyproject (100%) rename bec_widgets/widgets/{ => utility/visual}/dark_mode_button/dark_mode_button_plugin.py (92%) rename bec_widgets/widgets/{ => utility/visual}/dark_mode_button/register_dark_mode_button.py (75%) diff --git a/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py b/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py index ea8dbab5..735667c8 100644 --- a/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +++ b/bec_widgets/applications/alignment/alignment_1d/alignment_1d.py @@ -5,36 +5,23 @@ It is a preliminary version of the GUI, which will be added to the main branch a import os from typing import Optional -from bec_lib.device import Positioner as BECPositioner from bec_lib.device import Signal as BECSignal from bec_lib.endpoints import MessageEndpoints from bec_lib.logger import bec_logger -from qtpy.QtCore import QSize, Signal +from qtpy.QtCore import QSize from qtpy.QtGui import QIcon -from qtpy.QtWidgets import ( - QApplication, - QCheckBox, - QDoubleSpinBox, - QMainWindow, - QPushButton, - QSpinBox, -) +from qtpy.QtWidgets import QApplication import bec_widgets from bec_widgets.qt_utils.error_popups import SafeSlot as Slot -from bec_widgets.qt_utils.toolbar import WidgetAction from bec_widgets.utils import UILoader from bec_widgets.utils.bec_dispatcher import BECDispatcher -from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import get_accent_colors -from bec_widgets.widgets.bec_progressbar.bec_progressbar import BECProgressBar -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit -from bec_widgets.widgets.lmfit_dialog.lmfit_dialog import LMFitDialog -from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox -from bec_widgets.widgets.positioner_group.positioner_group import PositionerGroup -from bec_widgets.widgets.stop_button.stop_button import StopButton -from bec_widgets.widgets.toggle.toggle import ToggleSwitch -from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget +from bec_widgets.widgets.control.buttons.stop_button.stop_button import StopButton +from bec_widgets.widgets.control.device_control.positioner_group import PositionerGroup +from bec_widgets.widgets.dap.lmfit_dialog import LMFitDialog +from bec_widgets.widgets.plots.waveform import BECWaveformWidget +from bec_widgets.widgets.progress.bec_progressbar.bec_progressbar import BECProgressBar MODULE_PATH = os.path.dirname(bec_widgets.__file__) logger = bec_logger.logger diff --git a/bec_widgets/cli/client.py b/bec_widgets/cli/client.py index 42a1b1e8..9bdab9fa 100644 --- a/bec_widgets/cli/client.py +++ b/bec_widgets/cli/client.py @@ -15,39 +15,6 @@ class Widgets(str, enum.Enum): Enum for the available widgets. """ - AbortButton = "AbortButton" - BECColorMapWidget = "BECColorMapWidget" - BECDock = "BECDock" - BECDockArea = "BECDockArea" - BECFigure = "BECFigure" - BECImageWidget = "BECImageWidget" - BECMotorMapWidget = "BECMotorMapWidget" - BECMultiWaveformWidget = "BECMultiWaveformWidget" - BECProgressBar = "BECProgressBar" - BECQueue = "BECQueue" - BECStatusBox = "BECStatusBox" - BECWaveformWidget = "BECWaveformWidget" - DapComboBox = "DapComboBox" - DarkModeButton = "DarkModeButton" - DeviceBrowser = "DeviceBrowser" - DeviceComboBox = "DeviceComboBox" - DeviceLineEdit = "DeviceLineEdit" - LMFitDialog = "LMFitDialog" - PositionIndicator = "PositionIndicator" - PositionerBox = "PositionerBox" - PositionerControlLine = "PositionerControlLine" - PositionerGroup = "PositionerGroup" - ResetButton = "ResetButton" - ResumeButton = "ResumeButton" - RingProgressBar = "RingProgressBar" - ScanControl = "ScanControl" - SignalComboBox = "SignalComboBox" - SignalLineEdit = "SignalLineEdit" - StopButton = "StopButton" - TextBox = "TextBox" - VSCodeEditor = "VSCodeEditor" - WebsiteWidget = "WebsiteWidget" - class AbortButton(RPCBase): @property @@ -1641,10 +1608,10 @@ class BECMultiWaveform(RPCBase): @rpc_call def set_colormap(self, colormap: str): """ - Set the colormap for the scatter plot z gradient. + Set the colormap for the curves. Args: - colormap(str): Colormap for the scatter plot. + colormap(str): Colormap for the curves. """ @rpc_call @@ -1757,10 +1724,10 @@ class BECMultiWaveform(RPCBase): @rpc_call def set_colormap(self, colormap: str): """ - Set the colormap for the scatter plot z gradient. + Set the colormap for the curves. Args: - colormap(str): Colormap for the scatter plot. + colormap(str): Colormap for the curves. """ @rpc_call @@ -1781,6 +1748,12 @@ class BECMultiWaveform(RPCBase): lock(bool): True to lock, False to unlock. """ + @rpc_call + def export(self): + """ + Show the Export Dialog of the plot widget. + """ + @rpc_call def get_all_data(self, output: Literal["dict", "pandas"] = "dict") -> dict: """ @@ -1793,12 +1766,6 @@ class BECMultiWaveform(RPCBase): dict | pd.DataFrame: Data of all curves in the specified format. """ - @rpc_call - def export(self): - """ - Show the Export Dialog of the plot widget. - """ - @rpc_call def remove(self): """ diff --git a/bec_widgets/cli/server.py b/bec_widgets/cli/server.py index f3f48c22..db9109e7 100644 --- a/bec_widgets/cli/server.py +++ b/bec_widgets/cli/server.py @@ -16,9 +16,8 @@ from qtpy.QtCore import QTimer from bec_widgets.cli.rpc_register import RPCRegister from bec_widgets.utils import BECDispatcher from bec_widgets.utils.bec_connector import BECConnector -from bec_widgets.utils.bec_dispatcher import QtRedisConnector -from bec_widgets.widgets.dock.dock_area import BECDockArea -from bec_widgets.widgets.figure import BECFigure +from bec_widgets.widgets.containers.dock import BECDockArea +from bec_widgets.widgets.containers.figure import BECFigure messages = lazy_import("bec_lib.messages") logger = bec_logger.logger diff --git a/bec_widgets/examples/jupyter_console/jupyter_console_window.py b/bec_widgets/examples/jupyter_console/jupyter_console_window.py index 6b47bb58..74e0e3fb 100644 --- a/bec_widgets/examples/jupyter_console/jupyter_console_window.py +++ b/bec_widgets/examples/jupyter_console/jupyter_console_window.py @@ -3,8 +3,6 @@ import os import numpy as np import pyqtgraph as pg from bec_qthemes import material_icon -from qtpy.QtCore import QSize -from qtpy.QtGui import QIcon from qtpy.QtWidgets import ( QApplication, QGroupBox, @@ -17,9 +15,9 @@ from qtpy.QtWidgets import ( from bec_widgets.utils import BECDispatcher from bec_widgets.utils.colors import apply_theme -from bec_widgets.widgets.dock.dock_area import BECDockArea -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.jupyter_console.jupyter_console import BECJupyterConsole +from bec_widgets.widgets.containers.dock import BECDockArea +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.editors.jupyter_console.jupyter_console import BECJupyterConsole class JupyterConsoleWindow(QWidget): # pragma: no cover: diff --git a/bec_widgets/qt_utils/palette_viewer.py b/bec_widgets/qt_utils/palette_viewer.py index b8fcaa4d..c9dd0c38 100644 --- a/bec_widgets/qt_utils/palette_viewer.py +++ b/bec_widgets/qt_utils/palette_viewer.py @@ -13,7 +13,7 @@ from qtpy.QtWidgets import ( from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import get_accent_colors, get_theme_palette -from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton +from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton class PaletteViewer(BECWidget, QWidget): diff --git a/bec_widgets/utils/generate_designer_plugin.py b/bec_widgets/utils/generate_designer_plugin.py index 9b7b84e3..9a0ce289 100644 --- a/bec_widgets/utils/generate_designer_plugin.py +++ b/bec_widgets/utils/generate_designer_plugin.py @@ -143,7 +143,7 @@ class DesignerPluginGenerator: if __name__ == "__main__": # pragma: no cover # from bec_widgets.widgets.bec_queue.bec_queue import BECQueue - from bec_widgets.widgets.spinner.spinner import SpinnerWidget + from bec_widgets.widgets.utility.spinner import SpinnerWidget generator = DesignerPluginGenerator(SpinnerWidget) generator.run(validate=False) diff --git a/bec_widgets/utils/plugin_utils.py b/bec_widgets/utils/plugin_utils.py index e2d9b6be..ab735926 100644 --- a/bec_widgets/utils/plugin_utils.py +++ b/bec_widgets/utils/plugin_utils.py @@ -156,6 +156,10 @@ def get_custom_classes(repo_name: str) -> BECClassContainer: class_info.is_connector = True if issubclass(obj, BECWidget): class_info.is_widget = True + if len(subs) == 1 and ( + issubclass(obj, QWidget) or issubclass(obj, QGraphicsWidget) + ): + class_info.is_top_level = True if hasattr(obj, "PLUGIN") and obj.PLUGIN: class_info.is_plugin = True collection.add_class(class_info) diff --git a/bec_widgets/widgets/base_classes/__init__.py b/bec_widgets/widgets/containers/__init__.py similarity index 100% rename from bec_widgets/widgets/base_classes/__init__.py rename to bec_widgets/widgets/containers/__init__.py diff --git a/bec_widgets/widgets/dock/__init__.py b/bec_widgets/widgets/containers/dock/__init__.py similarity index 100% rename from bec_widgets/widgets/dock/__init__.py rename to bec_widgets/widgets/containers/dock/__init__.py diff --git a/bec_widgets/widgets/dock/dock.py b/bec_widgets/widgets/containers/dock/dock.py similarity index 100% rename from bec_widgets/widgets/dock/dock.py rename to bec_widgets/widgets/containers/dock/dock.py diff --git a/bec_widgets/widgets/dock/dock_area.py b/bec_widgets/widgets/containers/dock/dock_area.py similarity index 93% rename from bec_widgets/widgets/dock/dock_area.py rename to bec_widgets/widgets/containers/dock/dock_area.py index 0c62d81c..0b74bc4f 100644 --- a/bec_widgets/widgets/dock/dock_area.py +++ b/bec_widgets/widgets/containers/dock/dock_area.py @@ -18,18 +18,18 @@ from bec_widgets.qt_utils.toolbar import ( ) from bec_widgets.utils import ConnectionConfig, WidgetContainerUtils from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.bec_queue.bec_queue import BECQueue -from bec_widgets.widgets.bec_status_box.bec_status_box import BECStatusBox -from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton -from bec_widgets.widgets.dock.dock import BECDock, DockConfig -from bec_widgets.widgets.image.image_widget import BECImageWidget -from bec_widgets.widgets.motor_map.motor_map_widget import BECMotorMapWidget -from bec_widgets.widgets.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget -from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox -from bec_widgets.widgets.ring_progress_bar.ring_progress_bar import RingProgressBar -from bec_widgets.widgets.scan_control.scan_control import ScanControl -from bec_widgets.widgets.vscode.vscode import VSCodeEditor -from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget +from bec_widgets.widgets.containers.dock.dock import BECDock, DockConfig +from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox +from bec_widgets.widgets.control.scan_control.scan_control import ScanControl +from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor +from bec_widgets.widgets.plots.image.image_widget import BECImageWidget +from bec_widgets.widgets.plots.motor_map.motor_map_widget import BECMotorMapWidget +from bec_widgets.widgets.plots.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget +from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget +from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_bar import RingProgressBar +from bec_widgets.widgets.services.bec_queue.bec_queue import BECQueue +from bec_widgets.widgets.services.bec_status_box.bec_status_box import BECStatusBox +from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton class DockAreaConfig(ConnectionConfig): @@ -40,6 +40,7 @@ class DockAreaConfig(ConnectionConfig): class BECDockArea(BECWidget, QWidget): + PLUGIN = True USER_ACCESS = [ "_config_dict", "panels", diff --git a/bec_widgets/widgets/dock/dock_area.pyproject b/bec_widgets/widgets/containers/dock/dock_area.pyproject similarity index 100% rename from bec_widgets/widgets/dock/dock_area.pyproject rename to bec_widgets/widgets/containers/dock/dock_area.pyproject diff --git a/bec_widgets/widgets/dock/dock_area_plugin.py b/bec_widgets/widgets/containers/dock/dock_area_plugin.py similarity index 95% rename from bec_widgets/widgets/dock/dock_area_plugin.py rename to bec_widgets/widgets/containers/dock/dock_area_plugin.py index 59a3a4a3..be576978 100644 --- a/bec_widgets/widgets/dock/dock_area_plugin.py +++ b/bec_widgets/widgets/containers/dock/dock_area_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.dock import BECDockArea +from bec_widgets.widgets.containers.dock import BECDockArea DOM_XML = """ diff --git a/bec_widgets/widgets/dock/register_dock_area.py b/bec_widgets/widgets/containers/dock/register_dock_area.py similarity index 81% rename from bec_widgets/widgets/dock/register_dock_area.py rename to bec_widgets/widgets/containers/dock/register_dock_area.py index 5c730bf1..5d32afe7 100644 --- a/bec_widgets/widgets/dock/register_dock_area.py +++ b/bec_widgets/widgets/containers/dock/register_dock_area.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.dock.dock_area_plugin import BECDockAreaPlugin + from bec_widgets.widgets.containers.dock.dock_area_plugin import BECDockAreaPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(BECDockAreaPlugin()) diff --git a/bec_widgets/widgets/figure/__init__.py b/bec_widgets/widgets/containers/figure/__init__.py similarity index 100% rename from bec_widgets/widgets/figure/__init__.py rename to bec_widgets/widgets/containers/figure/__init__.py diff --git a/bec_widgets/widgets/figure/figure.py b/bec_widgets/widgets/containers/figure/figure.py similarity index 98% rename from bec_widgets/widgets/figure/figure.py rename to bec_widgets/widgets/containers/figure/figure.py index 88ec8a55..d76ccba2 100644 --- a/bec_widgets/widgets/figure/figure.py +++ b/bec_widgets/widgets/containers/figure/figure.py @@ -11,20 +11,25 @@ from bec_lib.logger import bec_logger from pydantic import Field, ValidationError, field_validator from qtpy.QtCore import Signal as pyqtSignal from qtpy.QtWidgets import QWidget -from tornado.gen import multi from typeguard import typechecked from bec_widgets.utils import ConnectionConfig, WidgetContainerUtils from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import apply_theme -from bec_widgets.widgets.figure.plots.image.image import BECImageShow, ImageConfig -from bec_widgets.widgets.figure.plots.motor_map.motor_map import BECMotorMap, MotorMapConfig -from bec_widgets.widgets.figure.plots.multi_waveform.multi_waveform import ( +from bec_widgets.widgets.containers.figure.plots.image.image import BECImageShow, ImageConfig +from bec_widgets.widgets.containers.figure.plots.motor_map.motor_map import ( + BECMotorMap, + MotorMapConfig, +) +from bec_widgets.widgets.containers.figure.plots.multi_waveform.multi_waveform import ( BECMultiWaveform, BECMultiWaveformConfig, ) -from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig -from bec_widgets.widgets.figure.plots.waveform.waveform import BECWaveform, Waveform1DConfig +from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig +from bec_widgets.widgets.containers.figure.plots.waveform.waveform import ( + BECWaveform, + Waveform1DConfig, +) logger = bec_logger.logger diff --git a/bec_widgets/widgets/bec_progressbar/__init__.py b/bec_widgets/widgets/containers/figure/plots/__init__.py similarity index 100% rename from bec_widgets/widgets/bec_progressbar/__init__.py rename to bec_widgets/widgets/containers/figure/plots/__init__.py diff --git a/bec_widgets/widgets/figure/plots/axis_settings.py b/bec_widgets/widgets/containers/figure/plots/axis_settings.py similarity index 100% rename from bec_widgets/widgets/figure/plots/axis_settings.py rename to bec_widgets/widgets/containers/figure/plots/axis_settings.py diff --git a/bec_widgets/widgets/figure/plots/axis_settings.ui b/bec_widgets/widgets/containers/figure/plots/axis_settings.ui similarity index 100% rename from bec_widgets/widgets/figure/plots/axis_settings.ui rename to bec_widgets/widgets/containers/figure/plots/axis_settings.ui diff --git a/bec_widgets/widgets/bec_queue/__init__.py b/bec_widgets/widgets/containers/figure/plots/image/__init__.py similarity index 100% rename from bec_widgets/widgets/bec_queue/__init__.py rename to bec_widgets/widgets/containers/figure/plots/image/__init__.py diff --git a/bec_widgets/widgets/figure/plots/image/image.py b/bec_widgets/widgets/containers/figure/plots/image/image.py similarity index 98% rename from bec_widgets/widgets/figure/plots/image/image.py rename to bec_widgets/widgets/containers/figure/plots/image/image.py index 1f3de727..c6eaf05a 100644 --- a/bec_widgets/widgets/figure/plots/image/image.py +++ b/bec_widgets/widgets/containers/figure/plots/image/image.py @@ -6,19 +6,22 @@ from typing import Any, Literal, Optional import numpy as np from bec_lib.endpoints import MessageEndpoints from bec_lib.logger import bec_logger -from pydantic import BaseModel, Field, ValidationError +from pydantic import Field, ValidationError from qtpy.QtCore import QThread, Slot from qtpy.QtWidgets import QWidget # from bec_widgets.qt_utils.error_popups import SafeSlot as Slot from bec_widgets.utils import EntryValidator -from bec_widgets.widgets.figure.plots.image.image_item import BECImageItem, ImageItemConfig -from bec_widgets.widgets.figure.plots.image.image_processor import ( +from bec_widgets.widgets.containers.figure.plots.image.image_item import ( + BECImageItem, + ImageItemConfig, +) +from bec_widgets.widgets.containers.figure.plots.image.image_processor import ( ImageProcessor, ImageStats, ProcessorWorker, ) -from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig +from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig logger = bec_logger.logger diff --git a/bec_widgets/widgets/figure/plots/image/image_item.py b/bec_widgets/widgets/containers/figure/plots/image/image_item.py similarity index 98% rename from bec_widgets/widgets/figure/plots/image/image_item.py rename to bec_widgets/widgets/containers/figure/plots/image/image_item.py index ce3d069f..c1a35f8f 100644 --- a/bec_widgets/widgets/figure/plots/image/image_item.py +++ b/bec_widgets/widgets/containers/figure/plots/image/image_item.py @@ -8,10 +8,13 @@ from bec_lib.logger import bec_logger from pydantic import Field from bec_widgets.utils import BECConnector, ConnectionConfig -from bec_widgets.widgets.figure.plots.image.image_processor import ImageStats, ProcessingConfig +from bec_widgets.widgets.containers.figure.plots.image.image_processor import ( + ImageStats, + ProcessingConfig, +) if TYPE_CHECKING: - from bec_widgets.widgets.figure.plots.image.image import BECImageShow + from bec_widgets.widgets.containers.figure.plots.image.image import BECImageShow logger = bec_logger.logger diff --git a/bec_widgets/widgets/figure/plots/image/image_processor.py b/bec_widgets/widgets/containers/figure/plots/image/image_processor.py similarity index 100% rename from bec_widgets/widgets/figure/plots/image/image_processor.py rename to bec_widgets/widgets/containers/figure/plots/image/image_processor.py diff --git a/bec_widgets/widgets/bec_status_box/__init__.py b/bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py similarity index 100% rename from bec_widgets/widgets/bec_status_box/__init__.py rename to bec_widgets/widgets/containers/figure/plots/motor_map/__init__.py diff --git a/bec_widgets/widgets/figure/plots/motor_map/motor_map.py b/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py similarity index 98% rename from bec_widgets/widgets/figure/plots/motor_map/motor_map.py rename to bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py index d72ab57c..14e86e1b 100644 --- a/bec_widgets/widgets/figure/plots/motor_map/motor_map.py +++ b/bec_widgets/widgets/containers/figure/plots/motor_map/motor_map.py @@ -15,8 +15,8 @@ from qtpy.QtWidgets import QWidget from bec_widgets.qt_utils.error_popups import SafeSlot as Slot from bec_widgets.utils import Colors, EntryValidator -from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig -from bec_widgets.widgets.figure.plots.waveform.waveform import Signal, SignalData +from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig +from bec_widgets.widgets.containers.figure.plots.waveform.waveform import Signal, SignalData logger = bec_logger.logger diff --git a/bec_widgets/widgets/button_abort/__init__.py b/bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py similarity index 100% rename from bec_widgets/widgets/button_abort/__init__.py rename to bec_widgets/widgets/containers/figure/plots/multi_waveform/__init__.py diff --git a/bec_widgets/widgets/figure/plots/multi_waveform/multi_waveform.py b/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py similarity index 98% rename from bec_widgets/widgets/figure/plots/multi_waveform/multi_waveform.py rename to bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py index 1c5b4b8e..a603e401 100644 --- a/bec_widgets/widgets/figure/plots/multi_waveform/multi_waveform.py +++ b/bec_widgets/widgets/containers/figure/plots/multi_waveform/multi_waveform.py @@ -10,7 +10,7 @@ from qtpy.QtCore import Signal, Slot from qtpy.QtWidgets import QWidget from bec_widgets.utils import Colors -from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig +from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig logger = bec_logger.logger @@ -345,7 +345,7 @@ if __name__ == "__main__": from qtpy.QtWidgets import QApplication - from bec_widgets.widgets.figure import BECFigure + from bec_widgets.widgets.containers.figure import BECFigure app = QApplication(sys.argv) widget = BECFigure() diff --git a/bec_widgets/widgets/figure/plots/plot_base.py b/bec_widgets/widgets/containers/figure/plots/plot_base.py similarity index 100% rename from bec_widgets/widgets/figure/plots/plot_base.py rename to bec_widgets/widgets/containers/figure/plots/plot_base.py diff --git a/bec_widgets/widgets/button_reset/__init__.py b/bec_widgets/widgets/containers/figure/plots/waveform/__init__.py similarity index 100% rename from bec_widgets/widgets/button_reset/__init__.py rename to bec_widgets/widgets/containers/figure/plots/waveform/__init__.py diff --git a/bec_widgets/widgets/figure/plots/waveform/waveform.py b/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py similarity index 99% rename from bec_widgets/widgets/figure/plots/waveform/waveform.py rename to bec_widgets/widgets/containers/figure/plots/waveform/waveform.py index c3de482f..2128fd6d 100644 --- a/bec_widgets/widgets/figure/plots/waveform/waveform.py +++ b/bec_widgets/widgets/containers/figure/plots/waveform/waveform.py @@ -19,8 +19,8 @@ from bec_widgets.qt_utils.error_popups import SafeSlot as Slot from bec_widgets.utils import Colors, EntryValidator from bec_widgets.utils.colors import get_accent_colors from bec_widgets.utils.linear_region_selector import LinearRegionWrapper -from bec_widgets.widgets.figure.plots.plot_base import BECPlotBase, SubplotConfig -from bec_widgets.widgets.figure.plots.waveform.waveform_curve import ( +from bec_widgets.widgets.containers.figure.plots.plot_base import BECPlotBase, SubplotConfig +from bec_widgets.widgets.containers.figure.plots.waveform.waveform_curve import ( BECCurve, CurveConfig, Signal, diff --git a/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py b/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py similarity index 98% rename from bec_widgets/widgets/figure/plots/waveform/waveform_curve.py rename to bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py index cf9b4238..4af35962 100644 --- a/bec_widgets/widgets/figure/plots/waveform/waveform_curve.py +++ b/bec_widgets/widgets/containers/figure/plots/waveform/waveform_curve.py @@ -1,6 +1,6 @@ from __future__ import annotations -from typing import TYPE_CHECKING, Any, Literal, Optional +from typing import TYPE_CHECKING, Literal, Optional import numpy as np import pyqtgraph as pg @@ -11,7 +11,7 @@ from qtpy import QtCore from bec_widgets.utils import BECConnector, Colors, ConnectionConfig if TYPE_CHECKING: - from bec_widgets.widgets.figure.plots.waveform import BECWaveform1D + from bec_widgets.widgets.containers.figure.plots.waveform import BECWaveform1D logger = bec_logger.logger diff --git a/bec_widgets/widgets/button_resume/__init__.py b/bec_widgets/widgets/control/__init__.py similarity index 100% rename from bec_widgets/widgets/button_resume/__init__.py rename to bec_widgets/widgets/control/__init__.py diff --git a/bec_widgets/widgets/color_button/__init__.py b/bec_widgets/widgets/control/buttons/__init__.py similarity index 100% rename from bec_widgets/widgets/color_button/__init__.py rename to bec_widgets/widgets/control/buttons/__init__.py diff --git a/bec_widgets/widgets/colormap_selector/__init__.py b/bec_widgets/widgets/control/buttons/button_abort/__init__.py similarity index 100% rename from bec_widgets/widgets/colormap_selector/__init__.py rename to bec_widgets/widgets/control/buttons/button_abort/__init__.py diff --git a/bec_widgets/widgets/button_abort/abort_button.pyproject b/bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject similarity index 100% rename from bec_widgets/widgets/button_abort/abort_button.pyproject rename to bec_widgets/widgets/control/buttons/button_abort/abort_button.pyproject diff --git a/bec_widgets/widgets/button_abort/abort_button_plugin.py b/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py similarity index 93% rename from bec_widgets/widgets/button_abort/abort_button_plugin.py rename to bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py index 2efe02c9..69daa840 100644 --- a/bec_widgets/widgets/button_abort/abort_button_plugin.py +++ b/bec_widgets/widgets/control/buttons/button_abort/abort_button_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.button_abort.button_abort import AbortButton +from bec_widgets.widgets.control.buttons.button_abort.button_abort import AbortButton DOM_XML = """ diff --git a/bec_widgets/widgets/button_abort/button_abort.py b/bec_widgets/widgets/control/buttons/button_abort/button_abort.py similarity index 99% rename from bec_widgets/widgets/button_abort/button_abort.py rename to bec_widgets/widgets/control/buttons/button_abort/button_abort.py index 531d22b6..7e454dd0 100644 --- a/bec_widgets/widgets/button_abort/button_abort.py +++ b/bec_widgets/widgets/control/buttons/button_abort/button_abort.py @@ -9,6 +9,7 @@ from bec_widgets.utils.bec_widget import BECWidget class AbortButton(BECWidget, QWidget): """A button that abort the scan.""" + PLUGIN = True ICON_NAME = "cancel" def __init__( diff --git a/bec_widgets/widgets/button_abort/register_abort_button.py b/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py similarity index 76% rename from bec_widgets/widgets/button_abort/register_abort_button.py rename to bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py index d2205089..d26c03df 100644 --- a/bec_widgets/widgets/button_abort/register_abort_button.py +++ b/bec_widgets/widgets/control/buttons/button_abort/register_abort_button.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.button_abort.abort_button_plugin import AbortButtonPlugin + from bec_widgets.widgets.control.buttons.button_abort.abort_button_plugin import ( + AbortButtonPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(AbortButtonPlugin()) diff --git a/bec_widgets/widgets/colormap_widget/__init__.py b/bec_widgets/widgets/control/buttons/button_reset/__init__.py similarity index 100% rename from bec_widgets/widgets/colormap_widget/__init__.py rename to bec_widgets/widgets/control/buttons/button_reset/__init__.py diff --git a/bec_widgets/widgets/button_reset/button_reset.py b/bec_widgets/widgets/control/buttons/button_reset/button_reset.py similarity index 99% rename from bec_widgets/widgets/button_reset/button_reset.py rename to bec_widgets/widgets/control/buttons/button_reset/button_reset.py index 578738a4..c98760a6 100644 --- a/bec_widgets/widgets/button_reset/button_reset.py +++ b/bec_widgets/widgets/control/buttons/button_reset/button_reset.py @@ -9,6 +9,7 @@ from bec_widgets.utils.bec_widget import BECWidget class ResetButton(BECWidget, QWidget): """A button that resets the scan queue.""" + PLUGIN = True ICON_NAME = "restart_alt" def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False): diff --git a/bec_widgets/widgets/button_reset/register_reset_button.py b/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py similarity index 76% rename from bec_widgets/widgets/button_reset/register_reset_button.py rename to bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py index 2ebaad40..1f31122e 100644 --- a/bec_widgets/widgets/button_reset/register_reset_button.py +++ b/bec_widgets/widgets/control/buttons/button_reset/register_reset_button.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.button_reset.reset_button_plugin import ResetButtonPlugin + from bec_widgets.widgets.control.buttons.button_reset.reset_button_plugin import ( + ResetButtonPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(ResetButtonPlugin()) diff --git a/bec_widgets/widgets/button_reset/reset_button.pyproject b/bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject similarity index 100% rename from bec_widgets/widgets/button_reset/reset_button.pyproject rename to bec_widgets/widgets/control/buttons/button_reset/reset_button.pyproject diff --git a/bec_widgets/widgets/button_reset/reset_button_plugin.py b/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py similarity index 93% rename from bec_widgets/widgets/button_reset/reset_button_plugin.py rename to bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py index 19c673d6..3cd01119 100644 --- a/bec_widgets/widgets/button_reset/reset_button_plugin.py +++ b/bec_widgets/widgets/control/buttons/button_reset/reset_button_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.button_reset.button_reset import ResetButton +from bec_widgets.widgets.control.buttons.button_reset.button_reset import ResetButton DOM_XML = """ diff --git a/bec_widgets/widgets/dap_combo_box/__init__.py b/bec_widgets/widgets/control/buttons/button_resume/__init__.py similarity index 100% rename from bec_widgets/widgets/dap_combo_box/__init__.py rename to bec_widgets/widgets/control/buttons/button_resume/__init__.py diff --git a/bec_widgets/widgets/button_resume/button_resume.py b/bec_widgets/widgets/control/buttons/button_resume/button_resume.py similarity index 98% rename from bec_widgets/widgets/button_resume/button_resume.py rename to bec_widgets/widgets/control/buttons/button_resume/button_resume.py index ee5fd716..d151a2f0 100644 --- a/bec_widgets/widgets/button_resume/button_resume.py +++ b/bec_widgets/widgets/control/buttons/button_resume/button_resume.py @@ -9,6 +9,7 @@ from bec_widgets.utils.bec_widget import BECWidget class ResumeButton(BECWidget, QWidget): """A button that continue scan queue.""" + PLUGIN = True ICON_NAME = "resume" def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False): diff --git a/bec_widgets/widgets/button_resume/register_resume_button.py b/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py similarity index 75% rename from bec_widgets/widgets/button_resume/register_resume_button.py rename to bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py index fad6f357..8b1c90ae 100644 --- a/bec_widgets/widgets/button_resume/register_resume_button.py +++ b/bec_widgets/widgets/control/buttons/button_resume/register_resume_button.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.button_resume.resume_button_plugin import ResumeButtonPlugin + from bec_widgets.widgets.control.buttons.button_resume.resume_button_plugin import ( + ResumeButtonPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(ResumeButtonPlugin()) diff --git a/bec_widgets/widgets/button_resume/resume_button.pyproject b/bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject similarity index 100% rename from bec_widgets/widgets/button_resume/resume_button.pyproject rename to bec_widgets/widgets/control/buttons/button_resume/resume_button.pyproject diff --git a/bec_widgets/widgets/button_resume/resume_button_plugin.py b/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py similarity index 93% rename from bec_widgets/widgets/button_resume/resume_button_plugin.py rename to bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py index 9d4c83e1..f4e600a3 100644 --- a/bec_widgets/widgets/button_resume/resume_button_plugin.py +++ b/bec_widgets/widgets/control/buttons/button_resume/resume_button_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.button_resume.button_resume import ResumeButton +from bec_widgets.widgets.control.buttons.button_resume.button_resume import ResumeButton DOM_XML = """ diff --git a/bec_widgets/widgets/dark_mode_button/__init__.py b/bec_widgets/widgets/control/buttons/stop_button/__init__.py similarity index 100% rename from bec_widgets/widgets/dark_mode_button/__init__.py rename to bec_widgets/widgets/control/buttons/stop_button/__init__.py diff --git a/bec_widgets/widgets/stop_button/register_stop_button.py b/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py similarity index 79% rename from bec_widgets/widgets/stop_button/register_stop_button.py rename to bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py index 5f1e8235..5c966cdd 100644 --- a/bec_widgets/widgets/stop_button/register_stop_button.py +++ b/bec_widgets/widgets/control/buttons/stop_button/register_stop_button.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.stop_button.stop_button_plugin import StopButtonPlugin + from bec_widgets.widgets.control.buttons.stop_button.stop_button_plugin import StopButtonPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(StopButtonPlugin()) diff --git a/bec_widgets/widgets/stop_button/stop_button.py b/bec_widgets/widgets/control/buttons/stop_button/stop_button.py similarity index 99% rename from bec_widgets/widgets/stop_button/stop_button.py rename to bec_widgets/widgets/control/buttons/stop_button/stop_button.py index 9fd0c2b4..f7c77f39 100644 --- a/bec_widgets/widgets/stop_button/stop_button.py +++ b/bec_widgets/widgets/control/buttons/stop_button/stop_button.py @@ -9,6 +9,7 @@ from bec_widgets.utils.bec_widget import BECWidget class StopButton(BECWidget, QWidget): """A button that stops the current scan.""" + PLUGIN = True ICON_NAME = "dangerous" def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False): diff --git a/bec_widgets/widgets/stop_button/stop_button.pyproject b/bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject similarity index 100% rename from bec_widgets/widgets/stop_button/stop_button.pyproject rename to bec_widgets/widgets/control/buttons/stop_button/stop_button.pyproject diff --git a/bec_widgets/widgets/stop_button/stop_button_plugin.py b/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py similarity index 93% rename from bec_widgets/widgets/stop_button/stop_button_plugin.py rename to bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py index c603410d..fa381b77 100644 --- a/bec_widgets/widgets/stop_button/stop_button_plugin.py +++ b/bec_widgets/widgets/control/buttons/stop_button/stop_button_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.stop_button.stop_button import StopButton +from bec_widgets.widgets.control.buttons.stop_button.stop_button import StopButton DOM_XML = """ diff --git a/bec_widgets/widgets/device_browser/__init__.py b/bec_widgets/widgets/control/device_control/__init__.py similarity index 100% rename from bec_widgets/widgets/device_browser/__init__.py rename to bec_widgets/widgets/control/device_control/__init__.py diff --git a/bec_widgets/widgets/device_combobox/__init__.py b/bec_widgets/widgets/control/device_control/position_indicator/__init__.py similarity index 100% rename from bec_widgets/widgets/device_combobox/__init__.py rename to bec_widgets/widgets/control/device_control/position_indicator/__init__.py diff --git a/bec_widgets/widgets/position_indicator/position_indicator.py b/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py similarity index 99% rename from bec_widgets/widgets/position_indicator/position_indicator.py rename to bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py index a8d18164..a9bcedf6 100644 --- a/bec_widgets/widgets/position_indicator/position_indicator.py +++ b/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.py @@ -9,7 +9,7 @@ from bec_widgets.utils.colors import get_accent_colors, get_theme_palette class PositionIndicator(BECWidget, QWidget): USER_ACCESS = ["set_value", "set_range", "vertical", "indicator_width", "rounded_corners"] - + PLUGIN = True ICON_NAME = "horizontal_distribute" def __init__(self, parent=None, client=None, config=None, gui_id=None): diff --git a/bec_widgets/widgets/position_indicator/position_indicator.pyproject b/bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject similarity index 100% rename from bec_widgets/widgets/position_indicator/position_indicator.pyproject rename to bec_widgets/widgets/control/device_control/position_indicator/position_indicator.pyproject diff --git a/bec_widgets/widgets/position_indicator/position_indicator_plugin.py b/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py similarity index 91% rename from bec_widgets/widgets/position_indicator/position_indicator_plugin.py rename to bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py index 18747b14..52fdbbae 100644 --- a/bec_widgets/widgets/position_indicator/position_indicator_plugin.py +++ b/bec_widgets/widgets/control/device_control/position_indicator/position_indicator_plugin.py @@ -6,7 +6,9 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.position_indicator.position_indicator import PositionIndicator +from bec_widgets.widgets.control.device_control.position_indicator.position_indicator import ( + PositionIndicator, +) DOM_XML = """ diff --git a/bec_widgets/widgets/position_indicator/register_position_indicator.py b/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py similarity index 80% rename from bec_widgets/widgets/position_indicator/register_position_indicator.py rename to bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py index d397282f..55dd9c2e 100644 --- a/bec_widgets/widgets/position_indicator/register_position_indicator.py +++ b/bec_widgets/widgets/control/device_control/position_indicator/register_position_indicator.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.position_indicator.position_indicator_plugin import ( + from bec_widgets.widgets.control.device_control.position_indicator.position_indicator_plugin import ( PositionIndicatorPlugin, ) diff --git a/bec_widgets/widgets/device_line_edit/__init__.py b/bec_widgets/widgets/control/device_control/positioner_box/__init__.py similarity index 100% rename from bec_widgets/widgets/device_line_edit/__init__.py rename to bec_widgets/widgets/control/device_control/positioner_box/__init__.py diff --git a/bec_widgets/widgets/positioner_box/positioner_box.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.py similarity index 98% rename from bec_widgets/widgets/positioner_box/positioner_box.py rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_box.py index 8922630c..2dc90902 100644 --- a/bec_widgets/widgets/positioner_box/positioner_box.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.py @@ -12,14 +12,16 @@ from bec_lib.messages import ScanQueueMessage from bec_qthemes import material_icon from qtpy.QtCore import Property, Signal, Slot from qtpy.QtGui import QDoubleValidator -from qtpy.QtWidgets import QDialog, QDoubleSpinBox, QPushButton, QVBoxLayout, QWidget +from qtpy.QtWidgets import QDialog, QDoubleSpinBox, QPushButton, QVBoxLayout from bec_widgets.qt_utils.compact_popup import CompactPopupWidget from bec_widgets.utils import UILoader from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import get_accent_colors, set_theme -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import ( + DeviceLineEdit, +) logger = bec_logger.logger @@ -32,6 +34,7 @@ class PositionerBox(BECWidget, CompactPopupWidget): ui_file = "positioner_box.ui" dimensions = (234, 224) + PLUGIN = True ICON_NAME = "switch_right" USER_ACCESS = ["set_positioner"] device_changed = Signal(str, str) diff --git a/bec_widgets/widgets/positioner_box/positioner_box.pyproject b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.pyproject similarity index 100% rename from bec_widgets/widgets/positioner_box/positioner_box.pyproject rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_box.pyproject diff --git a/bec_widgets/widgets/positioner_box/positioner_box.ui b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box.ui similarity index 100% rename from bec_widgets/widgets/positioner_box/positioner_box.ui rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_box.ui diff --git a/bec_widgets/widgets/positioner_box/positioner_box_plugin.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_plugin.py similarity index 93% rename from bec_widgets/widgets/positioner_box/positioner_box_plugin.py rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_box_plugin.py index 7e8a6bd0..e603b2cb 100644 --- a/bec_widgets/widgets/positioner_box/positioner_box_plugin.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_box_plugin.py @@ -6,7 +6,7 @@ import os from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox +from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox DOM_XML = """ diff --git a/bec_widgets/widgets/positioner_box/positioner_control_line.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.py similarity index 87% rename from bec_widgets/widgets/positioner_box/positioner_control_line.py rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.py index 206f51e5..1ce5037b 100644 --- a/bec_widgets/widgets/positioner_box/positioner_control_line.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.py @@ -1,6 +1,6 @@ from bec_lib.device import Positioner -from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox +from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox class PositionerControlLine(PositionerBox): @@ -9,6 +9,7 @@ class PositionerControlLine(PositionerBox): ui_file = "positioner_control_line.ui" dimensions = (60, 600) # height, width + PLUGIN = True ICON_NAME = "switch_left" def __init__(self, parent=None, device: Positioner = None, *args, **kwargs): diff --git a/bec_widgets/widgets/positioner_box/positioner_control_line.pyproject b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.pyproject similarity index 100% rename from bec_widgets/widgets/positioner_box/positioner_control_line.pyproject rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.pyproject diff --git a/bec_widgets/widgets/positioner_box/positioner_control_line.ui b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.ui similarity index 100% rename from bec_widgets/widgets/positioner_box/positioner_control_line.ui rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line.ui diff --git a/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line_plugin.py similarity index 91% rename from bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py rename to bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line_plugin.py index fe18e646..5bbab900 100644 --- a/bec_widgets/widgets/positioner_box/positioner_control_line_plugin.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/positioner_control_line_plugin.py @@ -6,7 +6,9 @@ import os from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.positioner_box.positioner_control_line import PositionerControlLine +from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line import ( + PositionerControlLine, +) DOM_XML = """ diff --git a/bec_widgets/widgets/positioner_box/register_positioner_box.py b/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_box.py similarity index 74% rename from bec_widgets/widgets/positioner_box/register_positioner_box.py rename to bec_widgets/widgets/control/device_control/positioner_box/register_positioner_box.py index d5e333de..52ea6d30 100644 --- a/bec_widgets/widgets/positioner_box/register_positioner_box.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_box.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.positioner_box.positioner_box_plugin import PositionerBoxPlugin + from bec_widgets.widgets.control.device_control.positioner_box.positioner_box_plugin import ( + PositionerBoxPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(PositionerBoxPlugin()) diff --git a/bec_widgets/widgets/positioner_box/register_positioner_control_line.py b/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_control_line.py similarity index 80% rename from bec_widgets/widgets/positioner_box/register_positioner_control_line.py rename to bec_widgets/widgets/control/device_control/positioner_box/register_positioner_control_line.py index 598a311e..cd915bd2 100644 --- a/bec_widgets/widgets/positioner_box/register_positioner_control_line.py +++ b/bec_widgets/widgets/control/device_control/positioner_box/register_positioner_control_line.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.positioner_box.positioner_control_line_plugin import ( + from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line_plugin import ( PositionerControlLinePlugin, ) diff --git a/bec_widgets/widgets/figure/plots/__init__.py b/bec_widgets/widgets/control/device_control/positioner_group/__init__.py similarity index 100% rename from bec_widgets/widgets/figure/plots/__init__.py rename to bec_widgets/widgets/control/device_control/positioner_group/__init__.py diff --git a/bec_widgets/widgets/positioner_group/positioner_group.py b/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py similarity index 96% rename from bec_widgets/widgets/positioner_group/positioner_group.py rename to bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py index f287ad30..eb29318b 100644 --- a/bec_widgets/widgets/positioner_group/positioner_group.py +++ b/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.py @@ -5,16 +5,16 @@ from __future__ import annotations from bec_lib.device import Positioner from bec_lib.logger import bec_logger from qtpy.QtCore import Property, QSize, Signal, Slot -from qtpy.QtWidgets import QGridLayout, QGroupBox, QSizePolicy, QVBoxLayout, QWidget +from qtpy.QtWidgets import QGridLayout, QGroupBox, QVBoxLayout, QWidget from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox +from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox logger = bec_logger.logger class PositionerGroupBox(QGroupBox): - + PLUGIN = True position_update = Signal(float) def __init__(self, parent, dev_name): diff --git a/bec_widgets/widgets/positioner_group/positioner_group.pyproject b/bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject similarity index 100% rename from bec_widgets/widgets/positioner_group/positioner_group.pyproject rename to bec_widgets/widgets/control/device_control/positioner_group/positioner_group.pyproject diff --git a/bec_widgets/widgets/positioner_group/positioner_group_plugin.py b/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py similarity index 92% rename from bec_widgets/widgets/positioner_group/positioner_group_plugin.py rename to bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py index 635d238a..2101ab51 100644 --- a/bec_widgets/widgets/positioner_group/positioner_group_plugin.py +++ b/bec_widgets/widgets/control/device_control/positioner_group/positioner_group_plugin.py @@ -6,7 +6,9 @@ import os from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.positioner_group.positioner_group import PositionerGroup +from bec_widgets.widgets.control.device_control.positioner_group.positioner_group import ( + PositionerGroup, +) DOM_XML = """ diff --git a/bec_widgets/widgets/positioner_group/register_positioner_group.py b/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py similarity index 73% rename from bec_widgets/widgets/positioner_group/register_positioner_group.py rename to bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py index 97e07d5d..a06c5e5e 100644 --- a/bec_widgets/widgets/positioner_group/register_positioner_group.py +++ b/bec_widgets/widgets/control/device_control/positioner_group/register_positioner_group.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.positioner_group.positioner_group_plugin import PositionerGroupPlugin + from bec_widgets.widgets.control.device_control.positioner_group.positioner_group_plugin import ( + PositionerGroupPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(PositionerGroupPlugin()) diff --git a/bec_widgets/widgets/figure/plots/image/__init__.py b/bec_widgets/widgets/control/device_input/__init__.py similarity index 100% rename from bec_widgets/widgets/figure/plots/image/__init__.py rename to bec_widgets/widgets/control/device_input/__init__.py diff --git a/bec_widgets/widgets/figure/plots/motor_map/__init__.py b/bec_widgets/widgets/control/device_input/base_classes/__init__.py similarity index 100% rename from bec_widgets/widgets/figure/plots/motor_map/__init__.py rename to bec_widgets/widgets/control/device_input/base_classes/__init__.py diff --git a/bec_widgets/widgets/base_classes/device_input_base.py b/bec_widgets/widgets/control/device_input/base_classes/device_input_base.py similarity index 100% rename from bec_widgets/widgets/base_classes/device_input_base.py rename to bec_widgets/widgets/control/device_input/base_classes/device_input_base.py diff --git a/bec_widgets/widgets/base_classes/device_signal_input_base.py b/bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py similarity index 100% rename from bec_widgets/widgets/base_classes/device_signal_input_base.py rename to bec_widgets/widgets/control/device_input/base_classes/device_signal_input_base.py diff --git a/bec_widgets/widgets/figure/plots/multi_waveform/__init__.py b/bec_widgets/widgets/control/device_input/device_combobox/__init__.py similarity index 100% rename from bec_widgets/widgets/figure/plots/multi_waveform/__init__.py rename to bec_widgets/widgets/control/device_input/device_combobox/__init__.py diff --git a/bec_widgets/widgets/device_combobox/device_combo_box.pyproject b/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject similarity index 100% rename from bec_widgets/widgets/device_combobox/device_combo_box.pyproject rename to bec_widgets/widgets/control/device_input/device_combobox/device_combo_box.pyproject diff --git a/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py b/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py similarity index 93% rename from bec_widgets/widgets/device_combobox/device_combo_box_plugin.py rename to bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py index c13ee1c1..c9100b2c 100644 --- a/bec_widgets/widgets/device_combobox/device_combo_box_plugin.py +++ b/bec_widgets/widgets/control/device_input/device_combobox/device_combo_box_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox DOM_XML = """ diff --git a/bec_widgets/widgets/device_combobox/device_combobox.py b/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py similarity index 98% rename from bec_widgets/widgets/device_combobox/device_combobox.py rename to bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py index 78c841ff..30e093d0 100644 --- a/bec_widgets/widgets/device_combobox/device_combobox.py +++ b/bec_widgets/widgets/control/device_input/device_combobox/device_combobox.py @@ -5,7 +5,7 @@ from qtpy.QtGui import QPainter, QPaintEvent, QPen from qtpy.QtWidgets import QComboBox, QSizePolicy from bec_widgets.utils.colors import get_accent_colors -from bec_widgets.widgets.base_classes.device_input_base import ( +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import ( BECDeviceFilter, DeviceInputBase, DeviceInputConfig, @@ -27,6 +27,7 @@ class DeviceComboBox(DeviceInputBase, QComboBox): """ ICON_NAME = "list_alt" + PLUGIN = True device_selected = Signal(str) device_config_update = Signal() diff --git a/bec_widgets/widgets/device_combobox/register_device_combo_box.py b/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py similarity index 74% rename from bec_widgets/widgets/device_combobox/register_device_combo_box.py rename to bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py index c7371030..15ee347e 100644 --- a/bec_widgets/widgets/device_combobox/register_device_combo_box.py +++ b/bec_widgets/widgets/control/device_input/device_combobox/register_device_combo_box.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.device_combobox.device_combo_box_plugin import DeviceComboBoxPlugin + from bec_widgets.widgets.control.device_input.device_combobox.device_combo_box_plugin import ( + DeviceComboBoxPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(DeviceComboBoxPlugin()) diff --git a/bec_widgets/widgets/figure/plots/waveform/__init__.py b/bec_widgets/widgets/control/device_input/device_line_edit/__init__.py similarity index 100% rename from bec_widgets/widgets/figure/plots/waveform/__init__.py rename to bec_widgets/widgets/control/device_input/device_line_edit/__init__.py diff --git a/bec_widgets/widgets/device_line_edit/device_line_edit.py b/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py similarity index 96% rename from bec_widgets/widgets/device_line_edit/device_line_edit.py rename to bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py index c348b476..0f9aa448 100644 --- a/bec_widgets/widgets/device_line_edit/device_line_edit.py +++ b/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.py @@ -6,7 +6,7 @@ from qtpy.QtGui import QPainter, QPaintEvent, QPen from qtpy.QtWidgets import QApplication, QCompleter, QLineEdit, QSizePolicy from bec_widgets.utils.colors import get_accent_colors -from bec_widgets.widgets.base_classes.device_input_base import ( +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import ( BECDeviceFilter, DeviceInputBase, DeviceInputConfig, @@ -32,6 +32,7 @@ class DeviceLineEdit(DeviceInputBase, QLineEdit): device_selected = Signal(str) device_config_update = Signal() + PLUGIN = True ICON_NAME = "edit_note" def __init__( @@ -156,7 +157,9 @@ if __name__ == "__main__": # pragma: no cover from qtpy.QtWidgets import QVBoxLayout, QWidget from bec_widgets.utils.colors import set_theme - from bec_widgets.widgets.signal_combobox.signal_combobox import SignalComboBox + from bec_widgets.widgets.control.device_input.signal_combobox.signal_combobox import ( + SignalComboBox, + ) app = QApplication([]) set_theme("dark") diff --git a/bec_widgets/widgets/device_line_edit/device_line_edit.pyproject b/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject similarity index 100% rename from bec_widgets/widgets/device_line_edit/device_line_edit.pyproject rename to bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pyproject diff --git a/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py b/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py similarity index 92% rename from bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py rename to bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py index 617d0d2b..5fcab2f9 100644 --- a/bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +++ b/bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py @@ -6,7 +6,9 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit +from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import ( + DeviceLineEdit, +) DOM_XML = """ diff --git a/bec_widgets/widgets/device_line_edit/register_device_line_edit.py b/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py similarity index 74% rename from bec_widgets/widgets/device_line_edit/register_device_line_edit.py rename to bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py index 8b587c38..9cc6e474 100644 --- a/bec_widgets/widgets/device_line_edit/register_device_line_edit.py +++ b/bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.device_line_edit.device_line_edit_plugin import DeviceLineEditPlugin + from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit_plugin import ( + DeviceLineEditPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(DeviceLineEditPlugin()) diff --git a/bec_widgets/widgets/image/__init__.py b/bec_widgets/widgets/control/device_input/signal_combobox/__init__.py similarity index 100% rename from bec_widgets/widgets/image/__init__.py rename to bec_widgets/widgets/control/device_input/signal_combobox/__init__.py diff --git a/bec_widgets/widgets/signal_combobox/register_signal_combobox.py b/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combobox.py similarity index 74% rename from bec_widgets/widgets/signal_combobox/register_signal_combobox.py rename to bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combobox.py index d48c477e..e4d0e798 100644 --- a/bec_widgets/widgets/signal_combobox/register_signal_combobox.py +++ b/bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combobox.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.signal_combobox.signal_combobox_plugin import SignalComboBoxPlugin + from bec_widgets.widgets.control.device_input.signal_combobox.signal_combobox_plugin import ( + SignalComboBoxPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(SignalComboBoxPlugin()) diff --git a/bec_widgets/widgets/signal_combobox/signal_combobox.py b/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py similarity index 96% rename from bec_widgets/widgets/signal_combobox/signal_combobox.py rename to bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py index 3415ada4..09672eae 100644 --- a/bec_widgets/widgets/signal_combobox/signal_combobox.py +++ b/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py @@ -4,7 +4,9 @@ from qtpy.QtWidgets import QComboBox, QSizePolicy from bec_widgets.utils.filter_io import ComboBoxFilterHandler, FilterIO from bec_widgets.utils.ophyd_kind_util import Kind -from bec_widgets.widgets.base_classes.device_signal_input_base import DeviceSignalInputBase +from bec_widgets.widgets.control.device_input.base_classes.device_signal_input_base import ( + DeviceSignalInputBase, +) class SignalComboBox(DeviceSignalInputBase, QComboBox): @@ -22,6 +24,7 @@ class SignalComboBox(DeviceSignalInputBase, QComboBox): """ ICON_NAME = "list_alt" + PLUGIN = True device_signal_changed = Signal(str) diff --git a/bec_widgets/widgets/signal_combobox/signal_combobox.pyproject b/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.pyproject similarity index 100% rename from bec_widgets/widgets/signal_combobox/signal_combobox.pyproject rename to bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.pyproject diff --git a/bec_widgets/widgets/signal_combobox/signal_combobox_plugin.py b/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox_plugin.py similarity index 92% rename from bec_widgets/widgets/signal_combobox/signal_combobox_plugin.py rename to bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox_plugin.py index d7bc9085..a016abed 100644 --- a/bec_widgets/widgets/signal_combobox/signal_combobox_plugin.py +++ b/bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.signal_combobox.signal_combobox import SignalComboBox +from bec_widgets.widgets.control.device_input.signal_combobox.signal_combobox import SignalComboBox DOM_XML = """ diff --git a/bec_widgets/widgets/jupyter_console/__init__.py b/bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py similarity index 100% rename from bec_widgets/widgets/jupyter_console/__init__.py rename to bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py diff --git a/bec_widgets/widgets/signal_line_edit/register_signal_line_edit.py b/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py similarity index 74% rename from bec_widgets/widgets/signal_line_edit/register_signal_line_edit.py rename to bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py index 3824cbbf..0a11780e 100644 --- a/bec_widgets/widgets/signal_line_edit/register_signal_line_edit.py +++ b/bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.signal_line_edit.signal_line_edit_plugin import SignalLineEditPlugin + from bec_widgets.widgets.control.device_input.signal_line_edit.signal_line_edit_plugin import ( + SignalLineEditPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(SignalLineEditPlugin()) diff --git a/bec_widgets/widgets/signal_line_edit/signal_line_edit.py b/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py similarity index 97% rename from bec_widgets/widgets/signal_line_edit/signal_line_edit.py rename to bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py index e8c3e38c..173a073a 100644 --- a/bec_widgets/widgets/signal_line_edit/signal_line_edit.py +++ b/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py @@ -5,7 +5,9 @@ from qtpy.QtWidgets import QCompleter, QLineEdit, QSizePolicy from bec_widgets.utils.colors import get_accent_colors from bec_widgets.utils.ophyd_kind_util import Kind -from bec_widgets.widgets.base_classes.device_signal_input_base import DeviceSignalInputBase +from bec_widgets.widgets.control.device_input.base_classes.device_signal_input_base import ( + DeviceSignalInputBase, +) class SignalLineEdit(DeviceSignalInputBase, QLineEdit): @@ -24,6 +26,7 @@ class SignalLineEdit(DeviceSignalInputBase, QLineEdit): device_signal_changed = Signal(str) + PLUGIN = True ICON_NAME = "vital_signs" def __init__( diff --git a/bec_widgets/widgets/signal_line_edit/signal_line_edit.pyproject b/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject similarity index 100% rename from bec_widgets/widgets/signal_line_edit/signal_line_edit.pyproject rename to bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject diff --git a/bec_widgets/widgets/signal_line_edit/signal_line_edit_plugin.py b/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py similarity index 91% rename from bec_widgets/widgets/signal_line_edit/signal_line_edit_plugin.py rename to bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py index 517f4e1b..dde9db18 100644 --- a/bec_widgets/widgets/signal_line_edit/signal_line_edit_plugin.py +++ b/bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py @@ -4,7 +4,9 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.signal_line_edit.signal_line_edit import SignalLineEdit +from bec_widgets.widgets.control.device_input.signal_line_edit.signal_line_edit import ( + SignalLineEdit, +) DOM_XML = """ diff --git a/bec_widgets/widgets/scan_control/__init__.py b/bec_widgets/widgets/control/scan_control/__init__.py similarity index 100% rename from bec_widgets/widgets/scan_control/__init__.py rename to bec_widgets/widgets/control/scan_control/__init__.py diff --git a/bec_widgets/widgets/scan_control/register_scan_control.py b/bec_widgets/widgets/control/scan_control/register_scan_control.py similarity index 80% rename from bec_widgets/widgets/scan_control/register_scan_control.py rename to bec_widgets/widgets/control/scan_control/register_scan_control.py index 137528fa..df03e292 100644 --- a/bec_widgets/widgets/scan_control/register_scan_control.py +++ b/bec_widgets/widgets/control/scan_control/register_scan_control.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.scan_control.scan_control_plugin import ScanControlPlugin + from bec_widgets.widgets.control.scan_control.scan_control_plugin import ScanControlPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(ScanControlPlugin()) diff --git a/bec_widgets/widgets/scan_control/scan_control.py b/bec_widgets/widgets/control/scan_control/scan_control.py similarity index 98% rename from bec_widgets/widgets/scan_control/scan_control.py rename to bec_widgets/widgets/control/scan_control/scan_control.py index 01dc4352..03f685e2 100644 --- a/bec_widgets/widgets/scan_control/scan_control.py +++ b/bec_widgets/widgets/control/scan_control/scan_control.py @@ -5,6 +5,7 @@ from typing import Optional from bec_lib.endpoints import MessageEndpoints from pydantic import BaseModel, Field from qtpy.QtCore import Property, Signal, Slot +from qtpy.QtGui import QColor from qtpy.QtWidgets import ( QApplication, QComboBox, @@ -21,9 +22,9 @@ from bec_widgets.qt_utils.error_popups import SafeSlot from bec_widgets.utils import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.colors import get_accent_colors -from bec_widgets.widgets.scan_control.scan_group_box import ScanGroupBox -from bec_widgets.widgets.stop_button.stop_button import StopButton -from bec_widgets.widgets.toggle.toggle import ToggleSwitch +from bec_widgets.widgets.control.buttons.stop_button.stop_button import StopButton +from bec_widgets.widgets.control.scan_control.scan_group_box import ScanGroupBox +from bec_widgets.widgets.utility.toggle.toggle import ToggleSwitch class ScanParameterConfig(BaseModel): @@ -39,7 +40,7 @@ class ScanControlConfig(ConnectionConfig): class ScanControl(BECWidget, QWidget): - + PLUGIN = True ICON_NAME = "tune" scan_started = Signal() diff --git a/bec_widgets/widgets/scan_control/scan_control.pyproject b/bec_widgets/widgets/control/scan_control/scan_control.pyproject similarity index 100% rename from bec_widgets/widgets/scan_control/scan_control.pyproject rename to bec_widgets/widgets/control/scan_control/scan_control.pyproject diff --git a/bec_widgets/widgets/scan_control/scan_control_plugin.py b/bec_widgets/widgets/control/scan_control/scan_control_plugin.py similarity index 93% rename from bec_widgets/widgets/scan_control/scan_control_plugin.py rename to bec_widgets/widgets/control/scan_control/scan_control_plugin.py index 7b0238da..35209d85 100644 --- a/bec_widgets/widgets/scan_control/scan_control_plugin.py +++ b/bec_widgets/widgets/control/scan_control/scan_control_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.scan_control.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control.scan_control import ScanControl DOM_XML = """ diff --git a/bec_widgets/widgets/scan_control/scan_group_box.py b/bec_widgets/widgets/control/scan_control/scan_group_box.py similarity index 98% rename from bec_widgets/widgets/scan_control/scan_group_box.py rename to bec_widgets/widgets/control/scan_control/scan_group_box.py index a313dcc9..0024b93c 100644 --- a/bec_widgets/widgets/scan_control/scan_group_box.py +++ b/bec_widgets/widgets/control/scan_control/scan_group_box.py @@ -21,8 +21,10 @@ from qtpy.QtWidgets import ( ) from bec_widgets.utils.widget_io import WidgetIO -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import ( + DeviceLineEdit, +) logger = bec_logger.logger diff --git a/bec_widgets/widgets/lmfit_dialog/__init__.py b/bec_widgets/widgets/dap/__init__.py similarity index 100% rename from bec_widgets/widgets/lmfit_dialog/__init__.py rename to bec_widgets/widgets/dap/__init__.py diff --git a/bec_widgets/widgets/motor_map/__init__.py b/bec_widgets/widgets/dap/dap_combo_box/__init__.py similarity index 100% rename from bec_widgets/widgets/motor_map/__init__.py rename to bec_widgets/widgets/dap/dap_combo_box/__init__.py diff --git a/bec_widgets/widgets/dap_combo_box/dap_combo_box.py b/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py similarity index 99% rename from bec_widgets/widgets/dap_combo_box/dap_combo_box.py rename to bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py index a2a0cc94..fce0ef2d 100644 --- a/bec_widgets/widgets/dap_combo_box/dap_combo_box.py +++ b/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.py @@ -21,7 +21,7 @@ class DapComboBox(BECWidget, QWidget): """ ICON_NAME = "data_exploration" - + PLUGIN = True USER_ACCESS = ["select_y_axis", "select_x_axis", "select_fit_model"] ### Signals ### diff --git a/bec_widgets/widgets/dap_combo_box/dap_combo_box.pyproject b/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject similarity index 100% rename from bec_widgets/widgets/dap_combo_box/dap_combo_box.pyproject rename to bec_widgets/widgets/dap/dap_combo_box/dap_combo_box.pyproject diff --git a/bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py b/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py similarity index 94% rename from bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py rename to bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py index 657330f1..d7974324 100644 --- a/bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py +++ b/bec_widgets/widgets/dap/dap_combo_box/dap_combo_box_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.dap_combo_box.dap_combo_box import DapComboBox +from bec_widgets.widgets.dap.dap_combo_box.dap_combo_box import DapComboBox DOM_XML = """ diff --git a/bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py b/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py similarity index 80% rename from bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py rename to bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py index c3865500..36d1f185 100644 --- a/bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py +++ b/bec_widgets/widgets/dap/dap_combo_box/register_dap_combo_box.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.dap_combo_box.dap_combo_box_plugin import DapComboBoxPlugin + from bec_widgets.widgets.dap.dap_combo_box.dap_combo_box_plugin import DapComboBoxPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(DapComboBoxPlugin()) diff --git a/bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py b/bec_widgets/widgets/dap/lmfit_dialog/__init__.py similarity index 100% rename from bec_widgets/widgets/motor_map/motor_map_dialog/__init__.py rename to bec_widgets/widgets/dap/lmfit_dialog/__init__.py diff --git a/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog.pyproject b/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject similarity index 100% rename from bec_widgets/widgets/lmfit_dialog/lm_fit_dialog.pyproject rename to bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog.pyproject diff --git a/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py b/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py similarity index 94% rename from bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py rename to bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py index 202fc41d..fc05f4b2 100644 --- a/bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py +++ b/bec_widgets/widgets/dap/lmfit_dialog/lm_fit_dialog_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.lmfit_dialog.lmfit_dialog import LMFitDialog +from bec_widgets.widgets.dap.lmfit_dialog.lmfit_dialog import LMFitDialog DOM_XML = """ diff --git a/bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py similarity index 99% rename from bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py rename to bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py index 50ac87c8..6ee6063d 100644 --- a/bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py +++ b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog.py @@ -14,6 +14,7 @@ logger = bec_logger.logger class LMFitDialog(BECWidget, QWidget): """Dialog for displaying the fit summary and params for LMFit DAP processes""" + PLUGIN = True ICON_NAME = "monitoring" # Signal to emit the currently selected fit curve_id selected_fit = Signal(str) diff --git a/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_compact.ui b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui similarity index 100% rename from bec_widgets/widgets/lmfit_dialog/lmfit_dialog_compact.ui rename to bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_compact.ui diff --git a/bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui b/bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui similarity index 100% rename from bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui rename to bec_widgets/widgets/dap/lmfit_dialog/lmfit_dialog_vertical.ui diff --git a/bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py b/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py similarity index 80% rename from bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py rename to bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py index 73f9c3aa..1eb630f6 100644 --- a/bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py +++ b/bec_widgets/widgets/dap/lmfit_dialog/register_lm_fit_dialog.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.lmfit_dialog.lm_fit_dialog_plugin import LMFitDialogPlugin + from bec_widgets.widgets.dap.lmfit_dialog.lm_fit_dialog_plugin import LMFitDialogPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(LMFitDialogPlugin()) diff --git a/bec_widgets/widgets/multi_waveform/__init__.py b/bec_widgets/widgets/editors/__init__.py similarity index 100% rename from bec_widgets/widgets/multi_waveform/__init__.py rename to bec_widgets/widgets/editors/__init__.py diff --git a/bec_widgets/widgets/position_indicator/__init__.py b/bec_widgets/widgets/editors/console/__init__.py similarity index 100% rename from bec_widgets/widgets/position_indicator/__init__.py rename to bec_widgets/widgets/editors/console/__init__.py diff --git a/bec_widgets/widgets/console/console.py b/bec_widgets/widgets/editors/console/console.py similarity index 99% rename from bec_widgets/widgets/console/console.py rename to bec_widgets/widgets/editors/console/console.py index a72d98dc..1be5ed76 100644 --- a/bec_widgets/widgets/console/console.py +++ b/bec_widgets/widgets/editors/console/console.py @@ -232,6 +232,7 @@ class Backend(QtCore.QObject): class BECConsole(QtWidgets.QWidget): """Container widget for the terminal text area""" + PLUGIN = True ICON_NAME = "terminal" def __init__(self, parent=None, cols=132): diff --git a/bec_widgets/widgets/console/console.pyproject b/bec_widgets/widgets/editors/console/console.pyproject similarity index 100% rename from bec_widgets/widgets/console/console.pyproject rename to bec_widgets/widgets/editors/console/console.pyproject diff --git a/bec_widgets/widgets/console/console_plugin.py b/bec_widgets/widgets/editors/console/console_plugin.py similarity index 95% rename from bec_widgets/widgets/console/console_plugin.py rename to bec_widgets/widgets/editors/console/console_plugin.py index 93af471e..eec5a993 100644 --- a/bec_widgets/widgets/console/console_plugin.py +++ b/bec_widgets/widgets/editors/console/console_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.console.console import BECConsole +from bec_widgets.widgets.editors.console.console import BECConsole DOM_XML = """ diff --git a/bec_widgets/widgets/console/register_console.py b/bec_widgets/widgets/editors/console/register_console.py similarity index 82% rename from bec_widgets/widgets/console/register_console.py rename to bec_widgets/widgets/editors/console/register_console.py index ae18e420..f25026f6 100644 --- a/bec_widgets/widgets/console/register_console.py +++ b/bec_widgets/widgets/editors/console/register_console.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.console.console_plugin import BECConsolePlugin + from bec_widgets.widgets.editors.console.console_plugin import BECConsolePlugin QPyDesignerCustomWidgetCollection.addCustomWidget(BECConsolePlugin()) diff --git a/bec_widgets/widgets/positioner_box/__init__.py b/bec_widgets/widgets/editors/jupyter_console/__init__.py similarity index 100% rename from bec_widgets/widgets/positioner_box/__init__.py rename to bec_widgets/widgets/editors/jupyter_console/__init__.py diff --git a/bec_widgets/widgets/jupyter_console/jupyter_console.py b/bec_widgets/widgets/editors/jupyter_console/jupyter_console.py similarity index 100% rename from bec_widgets/widgets/jupyter_console/jupyter_console.py rename to bec_widgets/widgets/editors/jupyter_console/jupyter_console.py diff --git a/bec_widgets/widgets/positioner_group/__init__.py b/bec_widgets/widgets/editors/text_box/__init__.py similarity index 100% rename from bec_widgets/widgets/positioner_group/__init__.py rename to bec_widgets/widgets/editors/text_box/__init__.py diff --git a/bec_widgets/widgets/text_box/register_text_box.py b/bec_widgets/widgets/editors/text_box/register_text_box.py similarity index 82% rename from bec_widgets/widgets/text_box/register_text_box.py rename to bec_widgets/widgets/editors/text_box/register_text_box.py index d1e707be..b8797665 100644 --- a/bec_widgets/widgets/text_box/register_text_box.py +++ b/bec_widgets/widgets/editors/text_box/register_text_box.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.text_box.text_box_plugin import TextBoxPlugin + from bec_widgets.widgets.editors.text_box.text_box_plugin import TextBoxPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(TextBoxPlugin()) diff --git a/bec_widgets/widgets/text_box/text_box.py b/bec_widgets/widgets/editors/text_box/text_box.py similarity index 99% rename from bec_widgets/widgets/text_box/text_box.py rename to bec_widgets/widgets/editors/text_box/text_box.py index 6bc343d0..10316cba 100644 --- a/bec_widgets/widgets/text_box/text_box.py +++ b/bec_widgets/widgets/editors/text_box/text_box.py @@ -38,6 +38,7 @@ class TextBox(BECWidget, QWidget): gui_id ([type], optional): The gui_id to use. Defaults to None. """ + PLUGIN = True USER_ACCESS = ["set_plain_text", "set_html_text"] ICON_NAME = "chat" diff --git a/bec_widgets/widgets/text_box/text_box.pyproject b/bec_widgets/widgets/editors/text_box/text_box.pyproject similarity index 100% rename from bec_widgets/widgets/text_box/text_box.pyproject rename to bec_widgets/widgets/editors/text_box/text_box.pyproject diff --git a/bec_widgets/widgets/text_box/text_box_plugin.py b/bec_widgets/widgets/editors/text_box/text_box_plugin.py similarity index 94% rename from bec_widgets/widgets/text_box/text_box_plugin.py rename to bec_widgets/widgets/editors/text_box/text_box_plugin.py index e1f849f6..83854a3a 100644 --- a/bec_widgets/widgets/text_box/text_box_plugin.py +++ b/bec_widgets/widgets/editors/text_box/text_box_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.text_box.text_box import TextBox +from bec_widgets.widgets.editors.text_box.text_box import TextBox DOM_XML = """ diff --git a/bec_widgets/widgets/signal_combobox/__init__.py b/bec_widgets/widgets/editors/vscode/__init__.py similarity index 100% rename from bec_widgets/widgets/signal_combobox/__init__.py rename to bec_widgets/widgets/editors/vscode/__init__.py diff --git a/bec_widgets/widgets/vscode/register_vs_code_editor.py b/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py similarity index 80% rename from bec_widgets/widgets/vscode/register_vs_code_editor.py rename to bec_widgets/widgets/editors/vscode/register_vs_code_editor.py index 2b8c488b..06cbcce4 100644 --- a/bec_widgets/widgets/vscode/register_vs_code_editor.py +++ b/bec_widgets/widgets/editors/vscode/register_vs_code_editor.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.vscode.vs_code_editor_plugin import VSCodeEditorPlugin + from bec_widgets.widgets.editors.vscode.vs_code_editor_plugin import VSCodeEditorPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(VSCodeEditorPlugin()) diff --git a/bec_widgets/widgets/vscode/vs_code_editor.pyproject b/bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject similarity index 100% rename from bec_widgets/widgets/vscode/vs_code_editor.pyproject rename to bec_widgets/widgets/editors/vscode/vs_code_editor.pyproject diff --git a/bec_widgets/widgets/vscode/vs_code_editor_plugin.py b/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py similarity index 95% rename from bec_widgets/widgets/vscode/vs_code_editor_plugin.py rename to bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py index 4b33870a..68967e02 100644 --- a/bec_widgets/widgets/vscode/vs_code_editor_plugin.py +++ b/bec_widgets/widgets/editors/vscode/vs_code_editor_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.vscode.vscode import VSCodeEditor +from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor DOM_XML = """ diff --git a/bec_widgets/widgets/vscode/vscode.py b/bec_widgets/widgets/editors/vscode/vscode.py similarity index 98% rename from bec_widgets/widgets/vscode/vscode.py rename to bec_widgets/widgets/editors/vscode/vscode.py index cfa63600..24ba661d 100644 --- a/bec_widgets/widgets/vscode/vscode.py +++ b/bec_widgets/widgets/editors/vscode/vscode.py @@ -4,13 +4,12 @@ import shlex import signal import socket import subprocess -import sys from typing import Literal from pydantic import BaseModel from qtpy.QtCore import Signal, Slot -from bec_widgets.widgets.website.website import WebsiteWidget +from bec_widgets.widgets.editors.website.website import WebsiteWidget class VSCodeInstructionMessage(BaseModel): @@ -42,6 +41,7 @@ class VSCodeEditor(WebsiteWidget): token = "bec" host = "127.0.0.1" + PLUGIN = True USER_ACCESS = [] ICON_NAME = "developer_mode_tv" diff --git a/bec_widgets/widgets/signal_line_edit/__init__.py b/bec_widgets/widgets/editors/website/__init__.py similarity index 100% rename from bec_widgets/widgets/signal_line_edit/__init__.py rename to bec_widgets/widgets/editors/website/__init__.py diff --git a/bec_widgets/widgets/website/register_website_widget.py b/bec_widgets/widgets/editors/website/register_website_widget.py similarity index 80% rename from bec_widgets/widgets/website/register_website_widget.py rename to bec_widgets/widgets/editors/website/register_website_widget.py index 72d8bfc7..2e770e31 100644 --- a/bec_widgets/widgets/website/register_website_widget.py +++ b/bec_widgets/widgets/editors/website/register_website_widget.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.website.website_widget_plugin import WebsiteWidgetPlugin + from bec_widgets.widgets.editors.website.website_widget_plugin import WebsiteWidgetPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(WebsiteWidgetPlugin()) diff --git a/bec_widgets/widgets/website/website.py b/bec_widgets/widgets/editors/website/website.py similarity index 99% rename from bec_widgets/widgets/website/website.py rename to bec_widgets/widgets/editors/website/website.py index 84784ca4..6a2444e8 100644 --- a/bec_widgets/widgets/website/website.py +++ b/bec_widgets/widgets/editors/website/website.py @@ -19,6 +19,7 @@ class WebsiteWidget(BECWidget, QWidget): A simple widget to display a website """ + PLUGIN = True ICON_NAME = "travel_explore" USER_ACCESS = ["set_url", "get_url", "reload", "back", "forward"] diff --git a/bec_widgets/widgets/website/website_widget.pyproject b/bec_widgets/widgets/editors/website/website_widget.pyproject similarity index 100% rename from bec_widgets/widgets/website/website_widget.pyproject rename to bec_widgets/widgets/editors/website/website_widget.pyproject diff --git a/bec_widgets/widgets/website/website_widget_plugin.py b/bec_widgets/widgets/editors/website/website_widget_plugin.py similarity index 94% rename from bec_widgets/widgets/website/website_widget_plugin.py rename to bec_widgets/widgets/editors/website/website_widget_plugin.py index 0062b756..79fef6d9 100644 --- a/bec_widgets/widgets/website/website_widget_plugin.py +++ b/bec_widgets/widgets/editors/website/website_widget_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.website.website import WebsiteWidget +from bec_widgets.widgets.editors.website.website import WebsiteWidget DOM_XML = """ diff --git a/bec_widgets/widgets/spinner/__init__.py b/bec_widgets/widgets/plots/__init__.py similarity index 100% rename from bec_widgets/widgets/spinner/__init__.py rename to bec_widgets/widgets/plots/__init__.py diff --git a/bec_widgets/widgets/stop_button/__init__.py b/bec_widgets/widgets/plots/image/__init__.py similarity index 100% rename from bec_widgets/widgets/stop_button/__init__.py rename to bec_widgets/widgets/plots/image/__init__.py diff --git a/bec_widgets/widgets/image/bec_image_widget.pyproject b/bec_widgets/widgets/plots/image/bec_image_widget.pyproject similarity index 100% rename from bec_widgets/widgets/image/bec_image_widget.pyproject rename to bec_widgets/widgets/plots/image/bec_image_widget.pyproject diff --git a/bec_widgets/widgets/image/bec_image_widget_plugin.py b/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py similarity index 94% rename from bec_widgets/widgets/image/bec_image_widget_plugin.py rename to bec_widgets/widgets/plots/image/bec_image_widget_plugin.py index 70710802..94d056a6 100644 --- a/bec_widgets/widgets/image/bec_image_widget_plugin.py +++ b/bec_widgets/widgets/plots/image/bec_image_widget_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.image.image_widget import BECImageWidget +from bec_widgets.widgets.plots.image.image_widget import BECImageWidget DOM_XML = """ diff --git a/bec_widgets/widgets/image/image_widget.py b/bec_widgets/widgets/plots/image/image_widget.py similarity index 97% rename from bec_widgets/widgets/image/image_widget.py rename to bec_widgets/widgets/plots/image/image_widget.py index 209f1715..47f152c3 100644 --- a/bec_widgets/widgets/image/image_widget.py +++ b/bec_widgets/widgets/plots/image/image_widget.py @@ -17,15 +17,16 @@ from bec_widgets.qt_utils.toolbar import ( WidgetAction, ) from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.figure.plots.axis_settings import AxisSettings -from bec_widgets.widgets.figure.plots.image.image import ImageConfig -from bec_widgets.widgets.figure.plots.image.image_item import BECImageItem +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.containers.figure.plots.axis_settings import AxisSettings +from bec_widgets.widgets.containers.figure.plots.image.image import ImageConfig +from bec_widgets.widgets.containers.figure.plots.image.image_item import BECImageItem +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox class BECImageWidget(BECWidget, QWidget): + PLUGIN = True ICON_NAME = "image" USER_ACCESS = [ "image", diff --git a/bec_widgets/widgets/image/register_bec_image_widget.py b/bec_widgets/widgets/plots/image/register_bec_image_widget.py similarity index 80% rename from bec_widgets/widgets/image/register_bec_image_widget.py rename to bec_widgets/widgets/plots/image/register_bec_image_widget.py index 208ba766..776c1ac6 100644 --- a/bec_widgets/widgets/image/register_bec_image_widget.py +++ b/bec_widgets/widgets/plots/image/register_bec_image_widget.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.image.bec_image_widget_plugin import BECImageWidgetPlugin + from bec_widgets.widgets.plots.image.bec_image_widget_plugin import BECImageWidgetPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(BECImageWidgetPlugin()) diff --git a/bec_widgets/widgets/text_box/__init__.py b/bec_widgets/widgets/plots/motor_map/__init__.py similarity index 100% rename from bec_widgets/widgets/text_box/__init__.py rename to bec_widgets/widgets/plots/motor_map/__init__.py diff --git a/bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject b/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject similarity index 100% rename from bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject rename to bec_widgets/widgets/plots/motor_map/bec_motor_map_widget.pyproject diff --git a/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py b/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py similarity index 93% rename from bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py rename to bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py index 83abae16..e2a38f48 100644 --- a/bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py +++ b/bec_widgets/widgets/plots/motor_map/bec_motor_map_widget_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.motor_map.motor_map_widget import BECMotorMapWidget +from bec_widgets.widgets.plots.motor_map.motor_map_widget import BECMotorMapWidget DOM_XML = """ diff --git a/bec_widgets/widgets/toggle/__init__.py b/bec_widgets/widgets/plots/motor_map/motor_map_dialog/__init__.py similarity index 100% rename from bec_widgets/widgets/toggle/__init__.py rename to bec_widgets/widgets/plots/motor_map/motor_map_dialog/__init__.py diff --git a/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py b/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py similarity index 100% rename from bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.py rename to bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.py diff --git a/bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui b/bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui similarity index 100% rename from bec_widgets/widgets/motor_map/motor_map_dialog/motor_map_settings.ui rename to bec_widgets/widgets/plots/motor_map/motor_map_dialog/motor_map_settings.ui diff --git a/bec_widgets/widgets/motor_map/motor_map_widget.py b/bec_widgets/widgets/plots/motor_map/motor_map_widget.py similarity index 94% rename from bec_widgets/widgets/motor_map/motor_map_widget.py rename to bec_widgets/widgets/plots/motor_map/motor_map_widget.py index 0b3deb50..c6d4f966 100644 --- a/bec_widgets/widgets/motor_map/motor_map_widget.py +++ b/bec_widgets/widgets/plots/motor_map/motor_map_widget.py @@ -2,20 +2,20 @@ from __future__ import annotations import sys -from bec_lib.device import ReadoutPriority from qtpy.QtWidgets import QVBoxLayout, QWidget from bec_widgets.qt_utils.settings_dialog import SettingsDialog from bec_widgets.qt_utils.toolbar import DeviceSelectionAction, MaterialIconAction, ModularToolBar from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.figure.plots.motor_map.motor_map import MotorMapConfig -from bec_widgets.widgets.motor_map.motor_map_dialog.motor_map_settings import MotorMapSettings +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.containers.figure.plots.motor_map.motor_map import MotorMapConfig +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox +from bec_widgets.widgets.plots.motor_map.motor_map_dialog.motor_map_settings import MotorMapSettings class BECMotorMapWidget(BECWidget, QWidget): + PLUGIN = True ICON_NAME = "my_location" USER_ACCESS = [ "change_motors", diff --git a/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py b/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py similarity index 76% rename from bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py rename to bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py index adc4dd9c..88bf7a7a 100644 --- a/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py +++ b/bec_widgets/widgets/plots/motor_map/register_bec_motor_map_widget.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.motor_map.bec_motor_map_widget_plugin import BECMotorMapWidgetPlugin + from bec_widgets.widgets.plots.motor_map.bec_motor_map_widget_plugin import ( + BECMotorMapWidgetPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(BECMotorMapWidgetPlugin()) diff --git a/bec_widgets/widgets/vscode/__init__.py b/bec_widgets/widgets/plots/multi_waveform/__init__.py similarity index 100% rename from bec_widgets/widgets/vscode/__init__.py rename to bec_widgets/widgets/plots/multi_waveform/__init__.py diff --git a/bec_widgets/widgets/multi_waveform/bec_multi_waveform_widget.pyproject b/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject similarity index 100% rename from bec_widgets/widgets/multi_waveform/bec_multi_waveform_widget.pyproject rename to bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget.pyproject diff --git a/bec_widgets/widgets/multi_waveform/bec_multi_waveform_widget_plugin.py b/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py similarity index 92% rename from bec_widgets/widgets/multi_waveform/bec_multi_waveform_widget_plugin.py rename to bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py index 8a63e5ad..feb035bc 100644 --- a/bec_widgets/widgets/multi_waveform/bec_multi_waveform_widget_plugin.py +++ b/bec_widgets/widgets/plots/multi_waveform/bec_multi_waveform_widget_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget +from bec_widgets.widgets.plots.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget DOM_XML = """ diff --git a/bec_widgets/widgets/multi_waveform/multi_waveform_controls.ui b/bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui similarity index 100% rename from bec_widgets/widgets/multi_waveform/multi_waveform_controls.ui rename to bec_widgets/widgets/plots/multi_waveform/multi_waveform_controls.ui diff --git a/bec_widgets/widgets/multi_waveform/multi_waveform_widget.py b/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py similarity index 96% rename from bec_widgets/widgets/multi_waveform/multi_waveform_widget.py rename to bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py index 46d58057..fbf1c28b 100644 --- a/bec_widgets/widgets/multi_waveform/multi_waveform_widget.py +++ b/bec_widgets/widgets/plots/multi_waveform/multi_waveform_widget.py @@ -18,17 +18,20 @@ from bec_widgets.qt_utils.toolbar import ( ) from bec_widgets.utils import UILoader from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.colormap_widget.colormap_widget import BECColorMapWidget -from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.figure.plots.axis_settings import AxisSettings -from bec_widgets.widgets.figure.plots.multi_waveform.multi_waveform import BECMultiWaveformConfig +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.containers.figure.plots.axis_settings import AxisSettings +from bec_widgets.widgets.containers.figure.plots.multi_waveform.multi_waveform import ( + BECMultiWaveformConfig, +) +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox +from bec_widgets.widgets.utility.visual.colormap_widget.colormap_widget import BECColorMapWidget logger = bec_logger.logger class BECMultiWaveformWidget(BECWidget, QWidget): + PLUGIN = True ICON_NAME = "ssid_chart" USER_ACCESS = [ "curves", @@ -51,7 +54,6 @@ class BECMultiWaveformWidget(BECWidget, QWidget): "set_colormap", "enable_fps_monitor", "lock_aspect_ratio", - "get_all_data", "export", ] diff --git a/bec_widgets/widgets/multi_waveform/register_bec_multi_waveform_widget.py b/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py similarity index 82% rename from bec_widgets/widgets/multi_waveform/register_bec_multi_waveform_widget.py rename to bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py index d23b6999..70aa03f8 100644 --- a/bec_widgets/widgets/multi_waveform/register_bec_multi_waveform_widget.py +++ b/bec_widgets/widgets/plots/multi_waveform/register_bec_multi_waveform_widget.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.multi_waveform.bec_multi_waveform_widget_plugin import ( + from bec_widgets.widgets.plots.multi_waveform.bec_multi_waveform_widget_plugin import ( BECMultiWaveformWidgetPlugin, ) diff --git a/bec_widgets/widgets/waveform/__init__.py b/bec_widgets/widgets/plots/waveform/__init__.py similarity index 100% rename from bec_widgets/widgets/waveform/__init__.py rename to bec_widgets/widgets/plots/waveform/__init__.py diff --git a/bec_widgets/widgets/waveform/bec_waveform_widget.pyproject b/bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject similarity index 100% rename from bec_widgets/widgets/waveform/bec_waveform_widget.pyproject rename to bec_widgets/widgets/plots/waveform/bec_waveform_widget.pyproject diff --git a/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py b/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py similarity index 94% rename from bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py rename to bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py index 3a0ac0dc..bd110b30 100644 --- a/bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +++ b/bec_widgets/widgets/plots/waveform/bec_waveform_widget_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget +from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget DOM_XML = """ diff --git a/bec_widgets/widgets/waveform/register_bec_waveform_widget.py b/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py similarity index 76% rename from bec_widgets/widgets/waveform/register_bec_waveform_widget.py rename to bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py index 0becec9a..54b299b9 100644 --- a/bec_widgets/widgets/waveform/register_bec_waveform_widget.py +++ b/bec_widgets/widgets/plots/waveform/register_bec_waveform_widget.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.waveform.bec_waveform_widget_plugin import BECWaveformWidgetPlugin + from bec_widgets.widgets.plots.waveform.bec_waveform_widget_plugin import ( + BECWaveformWidgetPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(BECWaveformWidgetPlugin()) diff --git a/bec_widgets/widgets/waveform/waveform_popups/__init__.py b/bec_widgets/widgets/plots/waveform/waveform_popups/__init__.py similarity index 100% rename from bec_widgets/widgets/waveform/waveform_popups/__init__.py rename to bec_widgets/widgets/plots/waveform/waveform_popups/__init__.py diff --git a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py b/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/__init__.py similarity index 100% rename from bec_widgets/widgets/waveform/waveform_popups/curve_dialog/__init__.py rename to bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/__init__.py diff --git a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py b/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py similarity index 97% rename from bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py rename to bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py index 4b924bb3..bc880271 100644 --- a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.py +++ b/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py @@ -12,9 +12,11 @@ import bec_widgets from bec_widgets.qt_utils.error_popups import WarningPopupUtility from bec_widgets.qt_utils.settings_dialog import SettingWidget from bec_widgets.utils import Colors, UILoader -from bec_widgets.widgets.color_button.color_button import ColorButton -from bec_widgets.widgets.dap_combo_box.dap_combo_box import DapComboBox -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit +from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import ( + DeviceLineEdit, +) +from bec_widgets.widgets.dap.dap_combo_box.dap_combo_box import DapComboBox +from bec_widgets.widgets.utility.visual.color_button.color_button import ColorButton MODULE_PATH = os.path.dirname(bec_widgets.__file__) diff --git a/bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui b/bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui similarity index 100% rename from bec_widgets/widgets/waveform/waveform_popups/curve_dialog/curve_dialog.ui rename to bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui diff --git a/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py b/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py similarity index 100% rename from bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/__init__.py rename to bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py diff --git a/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py b/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py similarity index 78% rename from bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py rename to bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py index 54dd48d1..4a1adba5 100644 --- a/bec_widgets/widgets/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py +++ b/bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py @@ -1,10 +1,6 @@ -import os +from qtpy.QtWidgets import QDialog, QVBoxLayout -from qtpy.QtWidgets import QDialog, QTreeWidgetItem, QVBoxLayout - -from bec_widgets.qt_utils.error_popups import SafeSlot as Slot -from bec_widgets.utils import UILoader -from bec_widgets.widgets.lmfit_dialog.lmfit_dialog import LMFitDialog +from bec_widgets.widgets.dap.lmfit_dialog.lmfit_dialog import LMFitDialog class FitSummaryWidget(QDialog): diff --git a/bec_widgets/widgets/waveform/waveform_widget.py b/bec_widgets/widgets/plots/waveform/waveform_widget.py similarity index 97% rename from bec_widgets/widgets/waveform/waveform_widget.py rename to bec_widgets/widgets/plots/waveform/waveform_widget.py index a0af221f..367df9d5 100644 --- a/bec_widgets/widgets/waveform/waveform_widget.py +++ b/bec_widgets/widgets/plots/waveform/waveform_widget.py @@ -13,12 +13,14 @@ from bec_widgets.qt_utils.error_popups import SafeSlot, WarningPopupUtility from bec_widgets.qt_utils.settings_dialog import SettingsDialog from bec_widgets.qt_utils.toolbar import MaterialIconAction, ModularToolBar, SeparatorAction from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.figure.plots.axis_settings import AxisSettings -from bec_widgets.widgets.figure.plots.waveform.waveform import Waveform1DConfig -from bec_widgets.widgets.figure.plots.waveform.waveform_curve import BECCurve -from bec_widgets.widgets.waveform.waveform_popups.curve_dialog.curve_dialog import CurveSettings -from bec_widgets.widgets.waveform.waveform_popups.dap_summary_dialog.dap_summary_dialog import ( +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.containers.figure.plots.axis_settings import AxisSettings +from bec_widgets.widgets.containers.figure.plots.waveform.waveform import Waveform1DConfig +from bec_widgets.widgets.containers.figure.plots.waveform.waveform_curve import BECCurve +from bec_widgets.widgets.plots.waveform.waveform_popups.curve_dialog.curve_dialog import ( + CurveSettings, +) +from bec_widgets.widgets.plots.waveform.waveform_popups.dap_summary_dialog.dap_summary_dialog import ( FitSummaryWidget, ) @@ -31,6 +33,7 @@ logger = bec_logger.logger class BECWaveformWidget(BECWidget, QWidget): + PLUGIN = True ICON_NAME = "show_chart" USER_ACCESS = [ "curves", diff --git a/bec_widgets/widgets/website/__init__.py b/bec_widgets/widgets/progress/__init__.py similarity index 100% rename from bec_widgets/widgets/website/__init__.py rename to bec_widgets/widgets/progress/__init__.py diff --git a/bec_widgets/widgets/progress/bec_progressbar/__init__.py b/bec_widgets/widgets/progress/bec_progressbar/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/bec_progressbar/bec_progress_bar.pyproject b/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject similarity index 100% rename from bec_widgets/widgets/bec_progressbar/bec_progress_bar.pyproject rename to bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject diff --git a/bec_widgets/widgets/bec_progressbar/bec_progress_bar_plugin.py b/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py similarity index 93% rename from bec_widgets/widgets/bec_progressbar/bec_progress_bar_plugin.py rename to bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py index 14968741..e548eed6 100644 --- a/bec_widgets/widgets/bec_progressbar/bec_progress_bar_plugin.py +++ b/bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.bec_progressbar.bec_progressbar import BECProgressBar +from bec_widgets.widgets.progress.bec_progressbar.bec_progressbar import BECProgressBar DOM_XML = """ diff --git a/bec_widgets/widgets/bec_progressbar/bec_progressbar.py b/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py similarity index 99% rename from bec_widgets/widgets/bec_progressbar/bec_progressbar.py rename to bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py index 3c691123..11f4fbb3 100644 --- a/bec_widgets/widgets/bec_progressbar/bec_progressbar.py +++ b/bec_widgets/widgets/progress/bec_progressbar/bec_progressbar.py @@ -14,6 +14,7 @@ class BECProgressBar(BECWidget, QWidget): A custom progress bar with smooth transitions. The displayed text can be customized using a template. """ + PLUGIN = True USER_ACCESS = [ "set_value", "set_maximum", diff --git a/bec_widgets/widgets/bec_progressbar/register_bec_progress_bar.py b/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py similarity index 76% rename from bec_widgets/widgets/bec_progressbar/register_bec_progress_bar.py rename to bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py index f60f7bf0..02927267 100644 --- a/bec_widgets/widgets/bec_progressbar/register_bec_progress_bar.py +++ b/bec_widgets/widgets/progress/bec_progressbar/register_bec_progress_bar.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.bec_progressbar.bec_progress_bar_plugin import BECProgressBarPlugin + from bec_widgets.widgets.progress.bec_progressbar.bec_progress_bar_plugin import ( + BECProgressBarPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(BECProgressBarPlugin()) diff --git a/bec_widgets/widgets/ring_progress_bar/__init__.py b/bec_widgets/widgets/progress/ring_progress_bar/__init__.py similarity index 100% rename from bec_widgets/widgets/ring_progress_bar/__init__.py rename to bec_widgets/widgets/progress/ring_progress_bar/__init__.py diff --git a/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py b/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py similarity index 75% rename from bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py rename to bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py index 229214db..23f7c8ed 100644 --- a/bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +++ b/bec_widgets/widgets/progress/ring_progress_bar/register_ring_progress_bar.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.ring_progress_bar.ring_progress_bar_plugin import RingProgressBarPlugin + from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_bar_plugin import ( + RingProgressBarPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(RingProgressBarPlugin()) diff --git a/bec_widgets/widgets/ring_progress_bar/ring.py b/bec_widgets/widgets/progress/ring_progress_bar/ring.py similarity index 100% rename from bec_widgets/widgets/ring_progress_bar/ring.py rename to bec_widgets/widgets/progress/ring_progress_bar/ring.py diff --git a/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py similarity index 99% rename from bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py rename to bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py index 3d01260b..511e57cc 100644 --- a/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.py +++ b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.py @@ -13,7 +13,7 @@ from qtpy.QtWidgets import QSizePolicy, QWidget from bec_widgets.utils import Colors, ConnectionConfig, EntryValidator from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.ring_progress_bar.ring import Ring, RingConfig +from bec_widgets.widgets.progress.ring_progress_bar.ring import Ring, RingConfig logger = bec_logger.logger @@ -71,6 +71,7 @@ class RingProgressBarConfig(ConnectionConfig): class RingProgressBar(BECWidget, QWidget): + PLUGIN = True ICON_NAME = "track_changes" USER_ACCESS = [ "_get_all_rpc", diff --git a/bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject similarity index 100% rename from bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject rename to bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar.pyproject diff --git a/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py similarity index 93% rename from bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py rename to bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py index 1411dedc..2d01ea01 100644 --- a/bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +++ b/bec_widgets/widgets/progress/ring_progress_bar/ring_progress_bar_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.ring_progress_bar.ring_progress_bar import RingProgressBar +from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_bar import RingProgressBar DOM_XML = """ diff --git a/bec_widgets/widgets/services/__init__.py b/bec_widgets/widgets/services/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/services/bec_queue/__init__.py b/bec_widgets/widgets/services/bec_queue/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/bec_queue/bec_queue.py b/bec_widgets/widgets/services/bec_queue/bec_queue.py similarity index 95% rename from bec_widgets/widgets/bec_queue/bec_queue.py rename to bec_widgets/widgets/services/bec_queue/bec_queue.py index e836eae0..c234f49c 100644 --- a/bec_widgets/widgets/bec_queue/bec_queue.py +++ b/bec_widgets/widgets/services/bec_queue/bec_queue.py @@ -10,10 +10,10 @@ from bec_widgets.qt_utils.compact_popup import CompactPopupWidget from bec_widgets.qt_utils.toolbar import ModularToolBar, SeparatorAction, WidgetAction from bec_widgets.utils.bec_connector import ConnectionConfig from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.button_abort.button_abort import AbortButton -from bec_widgets.widgets.button_reset.button_reset import ResetButton -from bec_widgets.widgets.button_resume.button_resume import ResumeButton -from bec_widgets.widgets.stop_button.stop_button import StopButton +from bec_widgets.widgets.control.buttons.button_abort.button_abort import AbortButton +from bec_widgets.widgets.control.buttons.button_reset.button_reset import ResetButton +from bec_widgets.widgets.control.buttons.button_resume.button_resume import ResumeButton +from bec_widgets.widgets.control.buttons.stop_button.stop_button import StopButton class BECQueue(BECWidget, CompactPopupWidget): @@ -21,6 +21,7 @@ class BECQueue(BECWidget, CompactPopupWidget): Widget to display the BEC queue. """ + PLUGIN = True ICON_NAME = "edit_note" status_colors = { "STOPPED": "red", diff --git a/bec_widgets/widgets/bec_queue/bec_queue.pyproject b/bec_widgets/widgets/services/bec_queue/bec_queue.pyproject similarity index 100% rename from bec_widgets/widgets/bec_queue/bec_queue.pyproject rename to bec_widgets/widgets/services/bec_queue/bec_queue.pyproject diff --git a/bec_widgets/widgets/bec_queue/bec_queue_plugin.py b/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py similarity index 94% rename from bec_widgets/widgets/bec_queue/bec_queue_plugin.py rename to bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py index 39100750..d88e2843 100644 --- a/bec_widgets/widgets/bec_queue/bec_queue_plugin.py +++ b/bec_widgets/widgets/services/bec_queue/bec_queue_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.bec_queue.bec_queue import BECQueue +from bec_widgets.widgets.services.bec_queue.bec_queue import BECQueue DOM_XML = """ diff --git a/bec_widgets/widgets/bec_queue/register_bec_queue.py b/bec_widgets/widgets/services/bec_queue/register_bec_queue.py similarity index 81% rename from bec_widgets/widgets/bec_queue/register_bec_queue.py rename to bec_widgets/widgets/services/bec_queue/register_bec_queue.py index 31bdacb1..dd6d0fe0 100644 --- a/bec_widgets/widgets/bec_queue/register_bec_queue.py +++ b/bec_widgets/widgets/services/bec_queue/register_bec_queue.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.bec_queue.bec_queue_plugin import BECQueuePlugin + from bec_widgets.widgets.services.bec_queue.bec_queue_plugin import BECQueuePlugin QPyDesignerCustomWidgetCollection.addCustomWidget(BECQueuePlugin()) diff --git a/bec_widgets/widgets/services/bec_status_box/__init__.py b/bec_widgets/widgets/services/bec_status_box/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/bec_status_box/bec_status_box.py b/bec_widgets/widgets/services/bec_status_box/bec_status_box.py similarity index 99% rename from bec_widgets/widgets/bec_status_box/bec_status_box.py rename to bec_widgets/widgets/services/bec_status_box/bec_status_box.py index cb43804c..53d8a8fc 100644 --- a/bec_widgets/widgets/bec_status_box/bec_status_box.py +++ b/bec_widgets/widgets/services/bec_status_box/bec_status_box.py @@ -4,18 +4,17 @@ The widget automatically updates the status of all running BEC services, and dis from __future__ import annotations -import sys from collections import defaultdict from dataclasses import dataclass from typing import TYPE_CHECKING from bec_lib.utils.import_utils import lazy_import_from from qtpy.QtCore import QObject, QTimer, Signal, Slot -from qtpy.QtWidgets import QHBoxLayout, QTreeWidget, QTreeWidgetItem, QWidget +from qtpy.QtWidgets import QHBoxLayout, QTreeWidget, QTreeWidgetItem from bec_widgets.qt_utils.compact_popup import CompactPopupWidget from bec_widgets.utils.bec_widget import BECWidget -from bec_widgets.widgets.bec_status_box.status_item import StatusItem +from bec_widgets.widgets.services.bec_status_box.status_item import StatusItem if TYPE_CHECKING: from bec_lib.client import BECClient @@ -75,6 +74,7 @@ class BECStatusBox(BECWidget, CompactPopupWidget): gui_id Optional(str): The unique id for the widget. Defaults to None. """ + PLUGIN = True CORE_SERVICES = ["DeviceServer", "ScanServer", "SciHub", "ScanBundler", "FileWriterManager"] service_update = Signal(BECServiceInfoContainer) diff --git a/bec_widgets/widgets/bec_status_box/bec_status_box.pyproject b/bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject similarity index 100% rename from bec_widgets/widgets/bec_status_box/bec_status_box.pyproject rename to bec_widgets/widgets/services/bec_status_box/bec_status_box.pyproject diff --git a/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py b/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py similarity index 94% rename from bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py rename to bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py index a8ac6552..711d718b 100644 --- a/bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +++ b/bec_widgets/widgets/services/bec_status_box/bec_status_box_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.bec_status_box.bec_status_box import BECStatusBox +from bec_widgets.widgets.services.bec_status_box.bec_status_box import BECStatusBox DOM_XML = """ diff --git a/bec_widgets/widgets/bec_status_box/register_bec_status_box.py b/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py similarity index 79% rename from bec_widgets/widgets/bec_status_box/register_bec_status_box.py rename to bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py index 32693cad..aca6db3a 100644 --- a/bec_widgets/widgets/bec_status_box/register_bec_status_box.py +++ b/bec_widgets/widgets/services/bec_status_box/register_bec_status_box.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.bec_status_box.bec_status_box_plugin import BECStatusBoxPlugin + from bec_widgets.widgets.services.bec_status_box.bec_status_box_plugin import BECStatusBoxPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(BECStatusBoxPlugin()) diff --git a/bec_widgets/widgets/bec_status_box/status_item.py b/bec_widgets/widgets/services/bec_status_box/status_item.py similarity index 100% rename from bec_widgets/widgets/bec_status_box/status_item.py rename to bec_widgets/widgets/services/bec_status_box/status_item.py diff --git a/bec_widgets/widgets/services/device_browser/__init__.py b/bec_widgets/widgets/services/device_browser/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/device_browser/device_browser.py b/bec_widgets/widgets/services/device_browser/device_browser.py similarity index 95% rename from bec_widgets/widgets/device_browser/device_browser.py rename to bec_widgets/widgets/services/device_browser/device_browser.py index a2d69334..33e1872c 100644 --- a/bec_widgets/widgets/device_browser/device_browser.py +++ b/bec_widgets/widgets/services/device_browser/device_browser.py @@ -5,16 +5,16 @@ from typing import Optional from bec_lib.callback_handler import EventType from pyqtgraph import SignalProxy from qtpy.QtCore import Signal, Slot -from qtpy.QtWidgets import QLineEdit, QListWidgetItem, QVBoxLayout, QWidget +from qtpy.QtWidgets import QListWidgetItem, QVBoxLayout, QWidget from bec_widgets.utils.bec_widget import BECWidget from bec_widgets.utils.ui_loader import UILoader -from bec_widgets.widgets.device_browser.device_item import DeviceItem +from bec_widgets.widgets.services.device_browser.device_item import DeviceItem class DeviceBrowser(BECWidget, QWidget): device_update: Signal = Signal() - + PLUGIN = True ICON_NAME = "lists" def __init__( diff --git a/bec_widgets/widgets/device_browser/device_browser.pyproject b/bec_widgets/widgets/services/device_browser/device_browser.pyproject similarity index 100% rename from bec_widgets/widgets/device_browser/device_browser.pyproject rename to bec_widgets/widgets/services/device_browser/device_browser.pyproject diff --git a/bec_widgets/widgets/device_browser/device_browser.ui b/bec_widgets/widgets/services/device_browser/device_browser.ui similarity index 100% rename from bec_widgets/widgets/device_browser/device_browser.ui rename to bec_widgets/widgets/services/device_browser/device_browser.ui diff --git a/bec_widgets/widgets/device_browser/device_browser_plugin.py b/bec_widgets/widgets/services/device_browser/device_browser_plugin.py similarity index 93% rename from bec_widgets/widgets/device_browser/device_browser_plugin.py rename to bec_widgets/widgets/services/device_browser/device_browser_plugin.py index 37ca0566..a7b73e9d 100644 --- a/bec_widgets/widgets/device_browser/device_browser_plugin.py +++ b/bec_widgets/widgets/services/device_browser/device_browser_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.device_browser.device_browser import DeviceBrowser +from bec_widgets.widgets.services.device_browser.device_browser import DeviceBrowser DOM_XML = """ diff --git a/bec_widgets/widgets/device_browser/device_item/__init__.py b/bec_widgets/widgets/services/device_browser/device_item/__init__.py similarity index 100% rename from bec_widgets/widgets/device_browser/device_item/__init__.py rename to bec_widgets/widgets/services/device_browser/device_item/__init__.py diff --git a/bec_widgets/widgets/device_browser/device_item/device_item.py b/bec_widgets/widgets/services/device_browser/device_item/device_item.py similarity index 100% rename from bec_widgets/widgets/device_browser/device_item/device_item.py rename to bec_widgets/widgets/services/device_browser/device_item/device_item.py diff --git a/bec_widgets/widgets/device_browser/register_device_browser.py b/bec_widgets/widgets/services/device_browser/register_device_browser.py similarity index 76% rename from bec_widgets/widgets/device_browser/register_device_browser.py rename to bec_widgets/widgets/services/device_browser/register_device_browser.py index 8e62f5c8..078a3a45 100644 --- a/bec_widgets/widgets/device_browser/register_device_browser.py +++ b/bec_widgets/widgets/services/device_browser/register_device_browser.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.device_browser.device_browser_plugin import DeviceBrowserPlugin + from bec_widgets.widgets.services.device_browser.device_browser_plugin import ( + DeviceBrowserPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(DeviceBrowserPlugin()) diff --git a/bec_widgets/widgets/utility/__init__.py b/bec_widgets/widgets/utility/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/utility/spinner/__init__.py b/bec_widgets/widgets/utility/spinner/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/spinner/register_spinner_widget.py b/bec_widgets/widgets/utility/spinner/register_spinner_widget.py similarity index 80% rename from bec_widgets/widgets/spinner/register_spinner_widget.py rename to bec_widgets/widgets/utility/spinner/register_spinner_widget.py index b53947b9..68444508 100644 --- a/bec_widgets/widgets/spinner/register_spinner_widget.py +++ b/bec_widgets/widgets/utility/spinner/register_spinner_widget.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.spinner.spinner_widget_plugin import SpinnerWidgetPlugin + from bec_widgets.widgets.utility.spinner.spinner_widget_plugin import SpinnerWidgetPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(SpinnerWidgetPlugin()) diff --git a/bec_widgets/widgets/spinner/spinner.py b/bec_widgets/widgets/utility/spinner/spinner.py similarity index 99% rename from bec_widgets/widgets/spinner/spinner.py rename to bec_widgets/widgets/utility/spinner/spinner.py index 0cb5ff81..0fe8a4d6 100644 --- a/bec_widgets/widgets/spinner/spinner.py +++ b/bec_widgets/widgets/utility/spinner/spinner.py @@ -14,6 +14,7 @@ def ease_in_out_sine(t): class SpinnerWidget(QWidget): ICON_NAME = "progress_activity" + PLUGIN = True def __init__(self, parent=None): super().__init__(parent) diff --git a/bec_widgets/widgets/spinner/spinner_widget.pyproject b/bec_widgets/widgets/utility/spinner/spinner_widget.pyproject similarity index 100% rename from bec_widgets/widgets/spinner/spinner_widget.pyproject rename to bec_widgets/widgets/utility/spinner/spinner_widget.pyproject diff --git a/bec_widgets/widgets/spinner/spinner_widget_plugin.py b/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py similarity index 94% rename from bec_widgets/widgets/spinner/spinner_widget_plugin.py rename to bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py index f23fc4db..a9ba84d2 100644 --- a/bec_widgets/widgets/spinner/spinner_widget_plugin.py +++ b/bec_widgets/widgets/utility/spinner/spinner_widget_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.spinner.spinner import SpinnerWidget +from bec_widgets.widgets.utility.spinner.spinner import SpinnerWidget DOM_XML = """ diff --git a/bec_widgets/widgets/utility/toggle/__init__.py b/bec_widgets/widgets/utility/toggle/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/toggle/register_toggle_switch.py b/bec_widgets/widgets/utility/toggle/register_toggle_switch.py similarity index 81% rename from bec_widgets/widgets/toggle/register_toggle_switch.py rename to bec_widgets/widgets/utility/toggle/register_toggle_switch.py index fceca2de..a2e8484d 100644 --- a/bec_widgets/widgets/toggle/register_toggle_switch.py +++ b/bec_widgets/widgets/utility/toggle/register_toggle_switch.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.toggle.toggle_switch_plugin import ToggleSwitchPlugin + from bec_widgets.widgets.utility.toggle.toggle_switch_plugin import ToggleSwitchPlugin QPyDesignerCustomWidgetCollection.addCustomWidget(ToggleSwitchPlugin()) diff --git a/bec_widgets/widgets/toggle/toggle.py b/bec_widgets/widgets/utility/toggle/toggle.py similarity index 99% rename from bec_widgets/widgets/toggle/toggle.py rename to bec_widgets/widgets/utility/toggle/toggle.py index 4fefde6b..d21fa7a0 100644 --- a/bec_widgets/widgets/toggle/toggle.py +++ b/bec_widgets/widgets/utility/toggle/toggle.py @@ -12,6 +12,7 @@ class ToggleSwitch(QWidget): enabled = Signal(bool) ICON_NAME = "toggle_on" + PLUGIN = True def __init__(self, parent=None, checked=True): super().__init__(parent) diff --git a/bec_widgets/widgets/toggle/toggle_switch.pyproject b/bec_widgets/widgets/utility/toggle/toggle_switch.pyproject similarity index 100% rename from bec_widgets/widgets/toggle/toggle_switch.pyproject rename to bec_widgets/widgets/utility/toggle/toggle_switch.pyproject diff --git a/bec_widgets/widgets/toggle/toggle_switch_plugin.py b/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py similarity index 95% rename from bec_widgets/widgets/toggle/toggle_switch_plugin.py rename to bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py index 9c9a4b1d..efe33a7d 100644 --- a/bec_widgets/widgets/toggle/toggle_switch_plugin.py +++ b/bec_widgets/widgets/utility/toggle/toggle_switch_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.toggle.toggle import ToggleSwitch +from bec_widgets.widgets.utility.toggle.toggle import ToggleSwitch DOM_XML = """ diff --git a/bec_widgets/widgets/utility/visual/__init__.py b/bec_widgets/widgets/utility/visual/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/utility/visual/color_button/__init__.py b/bec_widgets/widgets/utility/visual/color_button/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/color_button/color_button.py b/bec_widgets/widgets/utility/visual/color_button/color_button.py similarity index 99% rename from bec_widgets/widgets/color_button/color_button.py rename to bec_widgets/widgets/utility/visual/color_button/color_button.py index e8965926..62efe488 100644 --- a/bec_widgets/widgets/color_button/color_button.py +++ b/bec_widgets/widgets/utility/visual/color_button/color_button.py @@ -17,6 +17,7 @@ class ColorButton(QWidget): color_selected = Signal(str) + PLUGIN = True ICON_NAME = "colors" def __init__(self, *args, **kwargs): diff --git a/bec_widgets/widgets/color_button/color_button.pyproject b/bec_widgets/widgets/utility/visual/color_button/color_button.pyproject similarity index 100% rename from bec_widgets/widgets/color_button/color_button.pyproject rename to bec_widgets/widgets/utility/visual/color_button/color_button.pyproject diff --git a/bec_widgets/widgets/color_button/color_button_plugin.py b/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py similarity index 93% rename from bec_widgets/widgets/color_button/color_button_plugin.py rename to bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py index 860857a0..6e619b46 100644 --- a/bec_widgets/widgets/color_button/color_button_plugin.py +++ b/bec_widgets/widgets/utility/visual/color_button/color_button_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.color_button.color_button import ColorButton +from bec_widgets.widgets.utility.visual.color_button.color_button import ColorButton DOM_XML = """ diff --git a/bec_widgets/widgets/color_button/register_color_button.py b/bec_widgets/widgets/utility/visual/color_button/register_color_button.py similarity index 76% rename from bec_widgets/widgets/color_button/register_color_button.py rename to bec_widgets/widgets/utility/visual/color_button/register_color_button.py index dbfcd6ed..33df0093 100644 --- a/bec_widgets/widgets/color_button/register_color_button.py +++ b/bec_widgets/widgets/utility/visual/color_button/register_color_button.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.color_button.color_button_plugin import ColorButtonPlugin + from bec_widgets.widgets.utility.visual.color_button.color_button_plugin import ( + ColorButtonPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(ColorButtonPlugin()) diff --git a/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py b/bec_widgets/widgets/utility/visual/colormap_selector/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/colormap_selector/colormap_selector.py b/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py similarity index 99% rename from bec_widgets/widgets/colormap_selector/colormap_selector.py rename to bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py index 52e9b2dc..cc353c87 100644 --- a/bec_widgets/widgets/colormap_selector/colormap_selector.py +++ b/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.py @@ -47,6 +47,7 @@ class ColormapSelector(QWidget): colormap_changed_signal = Signal(str) ICON_NAME = "palette" + PLUGIN = True def __init__(self, parent=None, default_colormaps=None): super().__init__(parent=parent) diff --git a/bec_widgets/widgets/colormap_selector/colormap_selector.pyproject b/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject similarity index 100% rename from bec_widgets/widgets/colormap_selector/colormap_selector.pyproject rename to bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector.pyproject diff --git a/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py b/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py similarity index 92% rename from bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py rename to bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py index cb5d6c2e..9cf959a4 100644 --- a/bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py +++ b/bec_widgets/widgets/utility/visual/colormap_selector/colormap_selector_plugin.py @@ -6,7 +6,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface import bec_widgets from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.colormap_selector.colormap_selector import ColormapSelector +from bec_widgets.widgets.utility.visual.colormap_selector.colormap_selector import ColormapSelector DOM_XML = """ diff --git a/bec_widgets/widgets/colormap_selector/register_colormap_selector.py b/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py similarity index 81% rename from bec_widgets/widgets/colormap_selector/register_colormap_selector.py rename to bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py index 1b00b659..ae9f245c 100644 --- a/bec_widgets/widgets/colormap_selector/register_colormap_selector.py +++ b/bec_widgets/widgets/utility/visual/colormap_selector/register_colormap_selector.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.colormap_selector.colormap_selector_plugin import ( + from bec_widgets.widgets.utility.visual.colormap_selector.colormap_selector_plugin import ( ColormapSelectorPlugin, ) diff --git a/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py b/bec_widgets/widgets/utility/visual/colormap_widget/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/colormap_widget/bec_color_map_widget.pyproject b/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject similarity index 100% rename from bec_widgets/widgets/colormap_widget/bec_color_map_widget.pyproject rename to bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget.pyproject diff --git a/bec_widgets/widgets/colormap_widget/bec_color_map_widget_plugin.py b/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py similarity index 92% rename from bec_widgets/widgets/colormap_widget/bec_color_map_widget_plugin.py rename to bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py index 4b648f3d..892dfa63 100644 --- a/bec_widgets/widgets/colormap_widget/bec_color_map_widget_plugin.py +++ b/bec_widgets/widgets/utility/visual/colormap_widget/bec_color_map_widget_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.colormap_widget.colormap_widget import BECColorMapWidget +from bec_widgets.widgets.utility.visual.colormap_widget.colormap_widget import BECColorMapWidget DOM_XML = """ diff --git a/bec_widgets/widgets/colormap_widget/colormap_widget.py b/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py similarity index 99% rename from bec_widgets/widgets/colormap_widget/colormap_widget.py rename to bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py index e6af4ee1..7b0329e9 100644 --- a/bec_widgets/widgets/colormap_widget/colormap_widget.py +++ b/bec_widgets/widgets/utility/visual/colormap_widget/colormap_widget.py @@ -10,6 +10,7 @@ class BECColorMapWidget(BECWidget, QWidget): colormap_changed_signal = Signal(str) ICON_NAME = "palette" USER_ACCESS = ["colormap"] + PLUGIN = True def __init__(self, parent=None, cmap: str = "magma"): super().__init__() diff --git a/bec_widgets/widgets/colormap_widget/register_bec_color_map_widget.py b/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py similarity index 81% rename from bec_widgets/widgets/colormap_widget/register_bec_color_map_widget.py rename to bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py index fbf05edf..2bb68b43 100644 --- a/bec_widgets/widgets/colormap_widget/register_bec_color_map_widget.py +++ b/bec_widgets/widgets/utility/visual/colormap_widget/register_bec_color_map_widget.py @@ -6,7 +6,7 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.colormap_widget.bec_color_map_widget_plugin import ( + from bec_widgets.widgets.utility.visual.colormap_widget.bec_color_map_widget_plugin import ( BECColorMapWidgetPlugin, ) diff --git a/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py b/bec_widgets/widgets/utility/visual/dark_mode_button/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/bec_widgets/widgets/dark_mode_button/dark_mode_button.py b/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py similarity index 99% rename from bec_widgets/widgets/dark_mode_button/dark_mode_button.py rename to bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py index ebd7b7d1..d395ef5f 100644 --- a/bec_widgets/widgets/dark_mode_button/dark_mode_button.py +++ b/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py @@ -12,6 +12,7 @@ class DarkModeButton(BECWidget, QWidget): USER_ACCESS = ["toggle_dark_mode"] ICON_NAME = "dark_mode" + PLUGIN = True def __init__( self, diff --git a/bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject b/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject similarity index 100% rename from bec_widgets/widgets/dark_mode_button/dark_mode_button.pyproject rename to bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject diff --git a/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py b/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py similarity index 92% rename from bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py rename to bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py index 6c43c218..107a57c9 100644 --- a/bec_widgets/widgets/dark_mode_button/dark_mode_button_plugin.py +++ b/bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py @@ -4,7 +4,7 @@ from qtpy.QtDesigner import QDesignerCustomWidgetInterface from bec_widgets.utils.bec_designer import designer_material_icon -from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton +from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton DOM_XML = """ diff --git a/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py b/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py similarity index 75% rename from bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py rename to bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py index dc5f106f..6ad134c2 100644 --- a/bec_widgets/widgets/dark_mode_button/register_dark_mode_button.py +++ b/bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py @@ -6,7 +6,9 @@ def main(): # pragma: no cover return from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection - from bec_widgets.widgets.dark_mode_button.dark_mode_button_plugin import DarkModeButtonPlugin + from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button_plugin import ( + DarkModeButtonPlugin, + ) QPyDesignerCustomWidgetCollection.addCustomWidget(DarkModeButtonPlugin()) diff --git a/tests/end-2-end/conftest.py b/tests/end-2-end/conftest.py index 12b64686..89eb22e5 100644 --- a/tests/end-2-end/conftest.py +++ b/tests/end-2-end/conftest.py @@ -6,10 +6,9 @@ import pytest from bec_lib.endpoints import MessageEndpoints from bec_widgets.cli.client_utils import _start_plot_process -from bec_widgets.cli.rpc_register import RPCRegister from bec_widgets.utils import BECDispatcher -from bec_widgets.widgets.dock import BECDockArea -from bec_widgets.widgets.figure import BECFigure +from bec_widgets.widgets.containers.dock import BECDockArea +from bec_widgets.widgets.containers.figure import BECFigure # make threads check in autouse, **will be executed at the end**; better than diff --git a/tests/end-2-end/test_scan_control_e2e.py b/tests/end-2-end/test_scan_control_e2e.py index c0519f67..dc82024d 100644 --- a/tests/end-2-end/test_scan_control_e2e.py +++ b/tests/end-2-end/test_scan_control_e2e.py @@ -3,7 +3,7 @@ import time import pytest from bec_widgets.utils.widget_io import WidgetIO -from bec_widgets.widgets.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control import ScanControl @pytest.fixture(scope="function") diff --git a/tests/unit_tests/test_abort_button.py b/tests/unit_tests/test_abort_button.py index 622151a6..ca6c18a2 100644 --- a/tests/unit_tests/test_abort_button.py +++ b/tests/unit_tests/test_abort_button.py @@ -2,7 +2,7 @@ import pytest -from bec_widgets.widgets.button_abort.button_abort import AbortButton +from bec_widgets.widgets.control.buttons.button_abort.button_abort import AbortButton from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_bec_connector.py b/tests/unit_tests/test_bec_connector.py index 040b4461..6d434f1b 100644 --- a/tests/unit_tests/test_bec_connector.py +++ b/tests/unit_tests/test_bec_connector.py @@ -5,7 +5,7 @@ import pytest from qtpy.QtWidgets import QApplication from bec_widgets.qt_utils.error_popups import SafeSlot as Slot -from bec_widgets.utils import BECConnector, ConnectionConfig +from bec_widgets.utils import BECConnector from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_bec_dispatcher.py b/tests/unit_tests/test_bec_dispatcher.py index bff12808..49c6448b 100644 --- a/tests/unit_tests/test_bec_dispatcher.py +++ b/tests/unit_tests/test_bec_dispatcher.py @@ -5,9 +5,7 @@ from unittest import mock import pytest import redis -from bec_lib.connector import MessageObject from bec_lib.messages import ScanMessage -from bec_lib.redis_connector import RedisConnector from bec_lib.serialization import MsgpackSerialization from bec_widgets.utils.bec_dispatcher import QtRedisConnector diff --git a/tests/unit_tests/test_bec_dock.py b/tests/unit_tests/test_bec_dock.py index 82f0050d..e205a0f5 100644 --- a/tests/unit_tests/test_bec_dock.py +++ b/tests/unit_tests/test_bec_dock.py @@ -1,11 +1,9 @@ # pylint: disable=missing-function-docstring, missing-module-docstring, unused-import -from unittest.mock import MagicMock, patch import pytest from bec_lib.endpoints import MessageEndpoints -from bec_lib.messages import ScanQueueStatusMessage -from bec_widgets.widgets.dock import BECDock, BECDockArea +from bec_widgets.widgets.containers.dock import BECDockArea from .client_mocks import mocked_client from .test_bec_queue import bec_queue_msg_full diff --git a/tests/unit_tests/test_bec_figure.py b/tests/unit_tests/test_bec_figure.py index dd65b4ff..61f73a10 100644 --- a/tests/unit_tests/test_bec_figure.py +++ b/tests/unit_tests/test_bec_figure.py @@ -3,11 +3,13 @@ import numpy as np import pytest -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.figure.plots.image.image import BECImageShow -from bec_widgets.widgets.figure.plots.motor_map.motor_map import BECMotorMap -from bec_widgets.widgets.figure.plots.multi_waveform.multi_waveform import BECMultiWaveform -from bec_widgets.widgets.figure.plots.waveform.waveform import BECWaveform +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.containers.figure.plots.image.image import BECImageShow +from bec_widgets.widgets.containers.figure.plots.motor_map.motor_map import BECMotorMap +from bec_widgets.widgets.containers.figure.plots.multi_waveform.multi_waveform import ( + BECMultiWaveform, +) +from bec_widgets.widgets.containers.figure.plots.waveform.waveform import BECWaveform from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_bec_image.py b/tests/unit_tests/test_bec_image.py index fd654b81..44e0b15a 100644 --- a/tests/unit_tests/test_bec_image.py +++ b/tests/unit_tests/test_bec_image.py @@ -1,12 +1,9 @@ # pylint: disable=missing-function-docstring, missing-module-docstring, unused-import -from unittest import mock import numpy as np -import pytest from bec_lib import messages -from qtpy.QtGui import QFontInfo -from bec_widgets.widgets.figure import BECFigure +from bec_widgets.widgets.containers.figure import BECFigure from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_bec_image_widget.py b/tests/unit_tests/test_bec_image_widget.py index 194c42e1..4dbe0d1f 100644 --- a/tests/unit_tests/test_bec_image_widget.py +++ b/tests/unit_tests/test_bec_image_widget.py @@ -1,10 +1,10 @@ -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock import pyqtgraph as pg import pytest -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.image.image_widget import BECImageWidget +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.plots.image.image_widget import BECImageWidget from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_bec_motor_map.py b/tests/unit_tests/test_bec_motor_map.py index ab731b91..f304937e 100644 --- a/tests/unit_tests/test_bec_motor_map.py +++ b/tests/unit_tests/test_bec_motor_map.py @@ -1,10 +1,9 @@ import numpy as np -import pytest from bec_lib.messages import DeviceMessage -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.figure.plots.motor_map.motor_map import BECMotorMap, MotorMapConfig -from bec_widgets.widgets.figure.plots.waveform.waveform_curve import SignalData +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.containers.figure.plots.motor_map.motor_map import MotorMapConfig +from bec_widgets.widgets.containers.figure.plots.waveform.waveform_curve import SignalData from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_bec_progressbar.py b/tests/unit_tests/test_bec_progressbar.py index 70edb6b4..dd3be4ba 100644 --- a/tests/unit_tests/test_bec_progressbar.py +++ b/tests/unit_tests/test_bec_progressbar.py @@ -1,7 +1,7 @@ import numpy as np import pytest -from bec_widgets.widgets.bec_progressbar.bec_progressbar import BECProgressBar +from bec_widgets.widgets.progress.bec_progressbar.bec_progressbar import BECProgressBar @pytest.fixture diff --git a/tests/unit_tests/test_bec_queue.py b/tests/unit_tests/test_bec_queue.py index b1fa9723..e3f0f7a1 100644 --- a/tests/unit_tests/test_bec_queue.py +++ b/tests/unit_tests/test_bec_queue.py @@ -1,7 +1,7 @@ import pytest from bec_lib import messages -from bec_widgets.widgets.bec_queue.bec_queue import BECQueue +from bec_widgets.widgets.services.bec_queue.bec_queue import BECQueue from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_bec_status_box.py b/tests/unit_tests/test_bec_status_box.py index 164b83c7..363602df 100644 --- a/tests/unit_tests/test_bec_status_box.py +++ b/tests/unit_tests/test_bec_status_box.py @@ -4,7 +4,10 @@ from unittest import mock import pytest from bec_lib.messages import BECStatus, ServiceMetricMessage, StatusMessage -from bec_widgets.widgets.bec_status_box.bec_status_box import BECServiceInfoContainer, BECStatusBox +from bec_widgets.widgets.services.bec_status_box.bec_status_box import ( + BECServiceInfoContainer, + BECStatusBox, +) from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_color_map_selector.py b/tests/unit_tests/test_color_map_selector.py index 31f6c797..504fa7fe 100644 --- a/tests/unit_tests/test_color_map_selector.py +++ b/tests/unit_tests/test_color_map_selector.py @@ -1,7 +1,7 @@ import pyqtgraph as pg import pytest -from bec_widgets.widgets.colormap_selector.colormap_selector import ColormapSelector +from bec_widgets.widgets.utility.visual.colormap_selector.colormap_selector import ColormapSelector @pytest.fixture diff --git a/tests/unit_tests/test_color_validation.py b/tests/unit_tests/test_color_validation.py index 6eb2c0df..eda47163 100644 --- a/tests/unit_tests/test_color_validation.py +++ b/tests/unit_tests/test_color_validation.py @@ -3,7 +3,7 @@ from pydantic import ValidationError from qtpy.QtGui import QColor from bec_widgets.utils import Colors -from bec_widgets.widgets.figure.plots.waveform.waveform_curve import CurveConfig +from bec_widgets.widgets.containers.figure.plots.waveform.waveform_curve import CurveConfig def test_color_validation_CSS(): diff --git a/tests/unit_tests/test_colormap_widget.py b/tests/unit_tests/test_colormap_widget.py index 553cecd2..7cb2f6a3 100644 --- a/tests/unit_tests/test_colormap_widget.py +++ b/tests/unit_tests/test_colormap_widget.py @@ -1,7 +1,7 @@ import pytest from pyqtgraph.widgets.ColorMapButton import ColorMapButton -from bec_widgets.widgets.colormap_widget.colormap_widget import BECColorMapWidget +from bec_widgets.widgets.utility.visual.colormap_widget.colormap_widget import BECColorMapWidget @pytest.fixture diff --git a/tests/unit_tests/test_crosshair.py b/tests/unit_tests/test_crosshair.py index 0cc115f2..8c614a55 100644 --- a/tests/unit_tests/test_crosshair.py +++ b/tests/unit_tests/test_crosshair.py @@ -1,10 +1,9 @@ import numpy as np -import pyqtgraph as pg import pytest from qtpy.QtCore import QPointF, Qt -from bec_widgets.widgets.image.image_widget import BECImageWidget -from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget +from bec_widgets.widgets.plots.image.image_widget import BECImageWidget +from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_dap_combobox.py b/tests/unit_tests/test_dap_combobox.py index f664328c..93cdfca0 100644 --- a/tests/unit_tests/test_dap_combobox.py +++ b/tests/unit_tests/test_dap_combobox.py @@ -1,8 +1,6 @@ -from unittest import mock - import pytest -from bec_widgets.widgets.dap_combo_box.dap_combo_box import DapComboBox +from bec_widgets.widgets.dap.dap_combo_box.dap_combo_box import DapComboBox from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_dark_mode_button.py b/tests/unit_tests/test_dark_mode_button.py index 6114d648..3dca50a2 100644 --- a/tests/unit_tests/test_dark_mode_button.py +++ b/tests/unit_tests/test_dark_mode_button.py @@ -5,7 +5,7 @@ from qtpy.QtCore import Qt from qtpy.QtWidgets import QApplication from bec_widgets.utils.colors import set_theme -from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton +from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton # pylint: disable=unused-import from .client_mocks import mocked_client @@ -64,7 +64,7 @@ def test_dark_mode_button_changes_theme(dark_mode_button): Test that the dark mode button changes the theme correctly. """ with mock.patch( - "bec_widgets.widgets.dark_mode_button.dark_mode_button.set_theme" + "bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button.set_theme" ) as mocked_set_theme: dark_mode_button.toggle_dark_mode() mocked_set_theme.assert_called_with("dark") diff --git a/tests/unit_tests/test_device_browser.py b/tests/unit_tests/test_device_browser.py index 2953b8a3..4318e2de 100644 --- a/tests/unit_tests/test_device_browser.py +++ b/tests/unit_tests/test_device_browser.py @@ -4,14 +4,14 @@ from unittest import mock import pytest from qtpy.QtCore import Qt -from bec_widgets.widgets.device_browser.device_browser import DeviceBrowser +from bec_widgets.widgets.services.device_browser.device_browser import DeviceBrowser from .client_mocks import mocked_client if TYPE_CHECKING: from qtpy.QtWidgets import QListWidgetItem - from bec_widgets.widgets.device_browser.device_item.device_item import DeviceItem + from bec_widgets.widgets.services.device_browser import DeviceItem @pytest.fixture diff --git a/tests/unit_tests/test_device_input_base.py b/tests/unit_tests/test_device_input_base.py index 759e08c1..c9f19c8c 100644 --- a/tests/unit_tests/test_device_input_base.py +++ b/tests/unit_tests/test_device_input_base.py @@ -4,8 +4,10 @@ import pytest from bec_lib.device import ReadoutPriority from qtpy.QtWidgets import QWidget -from bec_widgets.tests.utils import FakePositioner -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter, DeviceInputBase +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import ( + BECDeviceFilter, + DeviceInputBase, +) from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_device_input_widgets.py b/tests/unit_tests/test_device_input_widgets.py index 7cc32e46..1d6f03fa 100644 --- a/tests/unit_tests/test_device_input_widgets.py +++ b/tests/unit_tests/test_device_input_widgets.py @@ -1,9 +1,11 @@ import pytest from bec_lib.device import ReadoutPriority -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox +from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import ( + DeviceLineEdit, +) from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_device_signal_input.py b/tests/unit_tests/test_device_signal_input.py index 30e14906..deeb275c 100644 --- a/tests/unit_tests/test_device_signal_input.py +++ b/tests/unit_tests/test_device_signal_input.py @@ -4,11 +4,15 @@ import pytest from qtpy.QtWidgets import QWidget from bec_widgets.utils.ophyd_kind_util import Kind -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.base_classes.device_signal_input_base import DeviceSignalInputBase -from bec_widgets.widgets.device_combobox.device_combobox import DeviceComboBox -from bec_widgets.widgets.signal_combobox.signal_combobox import SignalComboBox -from bec_widgets.widgets.signal_line_edit.signal_line_edit import SignalLineEdit +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.control.device_input.base_classes.device_signal_input_base import ( + DeviceSignalInputBase, +) +from bec_widgets.widgets.control.device_input.device_combobox.device_combobox import DeviceComboBox +from bec_widgets.widgets.control.device_input.signal_combobox.signal_combobox import SignalComboBox +from bec_widgets.widgets.control.device_input.signal_line_edit.signal_line_edit import ( + SignalLineEdit, +) from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_filter_io.py b/tests/unit_tests/test_filter_io.py index f5a67332..818faa7d 100644 --- a/tests/unit_tests/test_filter_io.py +++ b/tests/unit_tests/test_filter_io.py @@ -1,8 +1,10 @@ import pytest from bec_widgets.utils.filter_io import FilterIO -from bec_widgets.widgets.dap_combo_box.dap_combo_box import DapComboBox -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit +from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import ( + DeviceLineEdit, +) +from bec_widgets.widgets.dap.dap_combo_box.dap_combo_box import DapComboBox from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_lmfit_dialog.py b/tests/unit_tests/test_lmfit_dialog.py index 558f62c6..31d1418d 100644 --- a/tests/unit_tests/test_lmfit_dialog.py +++ b/tests/unit_tests/test_lmfit_dialog.py @@ -3,7 +3,7 @@ from unittest import mock import numpy as np import pytest -from bec_widgets.widgets.lmfit_dialog.lmfit_dialog import LMFitDialog +from bec_widgets.widgets.dap.lmfit_dialog.lmfit_dialog import LMFitDialog from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_motor_map_widget.py b/tests/unit_tests/test_motor_map_widget.py index 51b19838..23bc549f 100644 --- a/tests/unit_tests/test_motor_map_widget.py +++ b/tests/unit_tests/test_motor_map_widget.py @@ -2,9 +2,9 @@ from unittest.mock import MagicMock, patch import pytest -from bec_widgets.widgets.base_classes.device_input_base import BECDeviceFilter -from bec_widgets.widgets.motor_map.motor_map_dialog.motor_map_settings import MotorMapSettings -from bec_widgets.widgets.motor_map.motor_map_widget import BECMotorMapWidget +from bec_widgets.widgets.control.device_input.base_classes.device_input_base import BECDeviceFilter +from bec_widgets.widgets.plots.motor_map.motor_map_dialog.motor_map_settings import MotorMapSettings +from bec_widgets.widgets.plots.motor_map.motor_map_widget import BECMotorMapWidget from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_multi_waveform.py b/tests/unit_tests/test_multi_waveform.py index ad0c58d1..2de43f9d 100644 --- a/tests/unit_tests/test_multi_waveform.py +++ b/tests/unit_tests/test_multi_waveform.py @@ -5,7 +5,7 @@ import pytest from bec_lib.endpoints import messages from bec_widgets.utils import Colors -from bec_widgets.widgets.figure import BECFigure +from bec_widgets.widgets.containers.figure import BECFigure from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_multi_waveform_widget.py b/tests/unit_tests/test_multi_waveform_widget.py index ce61a90c..757c5ce6 100644 --- a/tests/unit_tests/test_multi_waveform_widget.py +++ b/tests/unit_tests/test_multi_waveform_widget.py @@ -6,8 +6,8 @@ from qtpy.QtWidgets import QApplication from bec_widgets.qt_utils.settings_dialog import SettingsDialog from bec_widgets.utils.colors import apply_theme, get_theme_palette, set_theme -from bec_widgets.widgets.figure.plots.axis_settings import AxisSettings -from bec_widgets.widgets.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget +from bec_widgets.widgets.containers.figure.plots.axis_settings import AxisSettings +from bec_widgets.widgets.plots.multi_waveform.multi_waveform_widget import BECMultiWaveformWidget from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_palette_viewer.py b/tests/unit_tests/test_palette_viewer.py index 0fe8b820..8b4610ea 100644 --- a/tests/unit_tests/test_palette_viewer.py +++ b/tests/unit_tests/test_palette_viewer.py @@ -2,7 +2,7 @@ import pytest from qtpy.QtCore import Qt from bec_widgets.qt_utils.palette_viewer import PaletteViewer -from bec_widgets.widgets.dark_mode_button.dark_mode_button import DarkModeButton +from bec_widgets.widgets.utility.visual.dark_mode_button.dark_mode_button import DarkModeButton @pytest.fixture diff --git a/tests/unit_tests/test_plot_base.py b/tests/unit_tests/test_plot_base.py index 602de510..68b12bdb 100644 --- a/tests/unit_tests/test_plot_base.py +++ b/tests/unit_tests/test_plot_base.py @@ -2,9 +2,8 @@ from unittest import mock import pytest -from qtpy.QtGui import QFontInfo -from bec_widgets.widgets.figure import BECFigure +from bec_widgets.widgets.containers.figure import BECFigure from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_plugin_utils.py b/tests/unit_tests/test_plugin_utils.py index be46478d..d8397ec4 100644 --- a/tests/unit_tests/test_plugin_utils.py +++ b/tests/unit_tests/test_plugin_utils.py @@ -4,10 +4,9 @@ from bec_widgets.utils.plugin_utils import get_custom_classes def test_client_generator_classes(): out = get_custom_classes("bec_widgets") connector_cls_names = [cls.__name__ for cls in out.connector_classes] - top_level_cls_names = [cls.__name__ for cls in out.top_level_classes] + plugins = [cls.__name__ for cls in out.plugins] assert "BECFigure" in connector_cls_names assert "BECWaveform" in connector_cls_names - assert "BECDockArea" in top_level_cls_names - assert "BECFigure" in top_level_cls_names - assert "BECWaveform" not in top_level_cls_names + assert "BECDockArea" in plugins + assert "BECWaveform" not in plugins diff --git a/tests/unit_tests/test_position_indicator.py b/tests/unit_tests/test_position_indicator.py index 4b7db10c..e6a0e897 100644 --- a/tests/unit_tests/test_position_indicator.py +++ b/tests/unit_tests/test_position_indicator.py @@ -1,6 +1,8 @@ import pytest -from bec_widgets.widgets.position_indicator.position_indicator import PositionIndicator +from bec_widgets.widgets.control.device_control.position_indicator.position_indicator import ( + PositionIndicator, +) @pytest.fixture diff --git a/tests/unit_tests/test_positioner_box.py b/tests/unit_tests/test_positioner_box.py index a9d07c9f..54322533 100644 --- a/tests/unit_tests/test_positioner_box.py +++ b/tests/unit_tests/test_positioner_box.py @@ -1,16 +1,19 @@ from unittest import mock import pytest -from bec_lib.device import Positioner from bec_lib.endpoints import MessageEndpoints from bec_lib.messages import ScanQueueMessage from qtpy.QtCore import Qt, QTimer from qtpy.QtGui import QValidator from qtpy.QtWidgets import QPushButton -from bec_widgets.widgets.device_line_edit.device_line_edit import DeviceLineEdit -from bec_widgets.widgets.positioner_box.positioner_box import PositionerBox -from bec_widgets.widgets.positioner_box.positioner_control_line import PositionerControlLine +from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox +from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line import ( + PositionerControlLine, +) +from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import ( + DeviceLineEdit, +) from .client_mocks import mocked_client from .conftest import create_widget @@ -19,10 +22,12 @@ from .conftest import create_widget @pytest.fixture def positioner_box(qtbot, mocked_client): """Fixture for PositionerBox widget""" - with mock.patch("bec_widgets.widgets.positioner_box.positioner_box.uuid.uuid4") as mock_uuid: + with mock.patch( + "bec_widgets.widgets.control.device_control.positioner_box.positioner_box.uuid.uuid4" + ) as mock_uuid: mock_uuid.return_value = "fake_uuid" with mock.patch( - "bec_widgets.widgets.positioner_box.positioner_box.PositionerBox._check_device_is_valid", + "bec_widgets.widgets.control.device_control.positioner_box.positioner_box.PositionerBox._check_device_is_valid", return_value=True, ): db = create_widget(qtbot, PositionerBox, device="samx", client=mocked_client) @@ -120,10 +125,12 @@ def test_positioner_control_line(qtbot, mocked_client): """Test PositionerControlLine. Inherits from PositionerBox, but the layout is changed. Check dimensions only """ - with mock.patch("bec_widgets.widgets.positioner_box.positioner_box.uuid.uuid4") as mock_uuid: + with mock.patch( + "bec_widgets.widgets.control.device_control.positioner_box.positioner_box.uuid.uuid4" + ) as mock_uuid: mock_uuid.return_value = "fake_uuid" with mock.patch( - "bec_widgets.widgets.positioner_box.positioner_box.PositionerBox._check_device_is_valid", + "bec_widgets.widgets.control.device_control.positioner_box.positioner_box.PositionerBox._check_device_is_valid", return_value=True, ): db = PositionerControlLine(device="samx", client=mocked_client) diff --git a/tests/unit_tests/test_reset_button.py b/tests/unit_tests/test_reset_button.py index fa2d4926..1d0836c9 100644 --- a/tests/unit_tests/test_reset_button.py +++ b/tests/unit_tests/test_reset_button.py @@ -5,7 +5,7 @@ from unittest.mock import patch import pytest from qtpy.QtWidgets import QMessageBox -from bec_widgets.widgets.button_reset.button_reset import ResetButton +from bec_widgets.widgets.control.buttons.button_reset.button_reset import ResetButton from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_resume_button.py b/tests/unit_tests/test_resume_button.py index 534f4986..b080ab60 100644 --- a/tests/unit_tests/test_resume_button.py +++ b/tests/unit_tests/test_resume_button.py @@ -2,7 +2,7 @@ import pytest -from bec_widgets.widgets.button_resume.button_resume import ResumeButton +from bec_widgets.widgets.control.buttons.button_resume.button_resume import ResumeButton from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_ring_progress_bar.py b/tests/unit_tests/test_ring_progress_bar.py index d76e2bf8..9ff95baf 100644 --- a/tests/unit_tests/test_ring_progress_bar.py +++ b/tests/unit_tests/test_ring_progress_bar.py @@ -5,9 +5,9 @@ from bec_lib.endpoints import MessageEndpoints from pydantic import ValidationError from bec_widgets.utils import Colors -from bec_widgets.widgets.ring_progress_bar import RingProgressBar -from bec_widgets.widgets.ring_progress_bar.ring import ProgressbarConnections, RingConfig -from bec_widgets.widgets.ring_progress_bar.ring_progress_bar import RingProgressBarConfig +from bec_widgets.widgets.progress.ring_progress_bar import RingProgressBar +from bec_widgets.widgets.progress.ring_progress_bar.ring import ProgressbarConnections, RingConfig +from bec_widgets.widgets.progress.ring_progress_bar.ring_progress_bar import RingProgressBarConfig from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_rpc_server.py b/tests/unit_tests/test_rpc_server.py index 66c419f8..e38e8025 100644 --- a/tests/unit_tests/test_rpc_server.py +++ b/tests/unit_tests/test_rpc_server.py @@ -1,10 +1,9 @@ from unittest import mock import pytest -from bec_lib.service_config import ServiceConfig from bec_widgets.cli.server import _start_server -from bec_widgets.widgets.figure import BECFigure +from bec_widgets.widgets.containers.figure import BECFigure @pytest.fixture diff --git a/tests/unit_tests/test_scan_control.py b/tests/unit_tests/test_scan_control.py index f1f76c5e..5dac25e9 100644 --- a/tests/unit_tests/test_scan_control.py +++ b/tests/unit_tests/test_scan_control.py @@ -5,7 +5,7 @@ import pytest from bec_lib.messages import AvailableResourceMessage, ScanQueueHistoryMessage, ScanQueueMessage from bec_widgets.utils.widget_io import WidgetIO -from bec_widgets.widgets.scan_control import ScanControl +from bec_widgets.widgets.control.scan_control import ScanControl from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_scan_control_group_box.py b/tests/unit_tests/test_scan_control_group_box.py index 4a2d0ea0..15096c4e 100644 --- a/tests/unit_tests/test_scan_control_group_box.py +++ b/tests/unit_tests/test_scan_control_group_box.py @@ -1,8 +1,7 @@ # pylint: disable = no-name-in-module,missing-class-docstring, missing-module-docstring -import pytest from bec_widgets.utils.widget_io import WidgetIO -from bec_widgets.widgets.scan_control.scan_group_box import ScanGroupBox +from bec_widgets.widgets.control.scan_control.scan_group_box import ScanGroupBox def test_kwarg_box(qtbot): diff --git a/tests/unit_tests/test_spinner.py b/tests/unit_tests/test_spinner.py index 9546c8b2..046995fb 100644 --- a/tests/unit_tests/test_spinner.py +++ b/tests/unit_tests/test_spinner.py @@ -2,7 +2,7 @@ import pytest from bec_widgets.utils.colors import apply_theme from bec_widgets.utils.reference_utils import snap_and_compare -from bec_widgets.widgets.spinner.spinner import SpinnerWidget +from bec_widgets.widgets.utility.spinner.spinner import SpinnerWidget @pytest.fixture diff --git a/tests/unit_tests/test_stop_button.py b/tests/unit_tests/test_stop_button.py index 80a3a24e..b5ecdc1f 100644 --- a/tests/unit_tests/test_stop_button.py +++ b/tests/unit_tests/test_stop_button.py @@ -2,7 +2,7 @@ import pytest -from bec_widgets.widgets.stop_button.stop_button import StopButton +from bec_widgets.widgets.control.buttons.stop_button.stop_button import StopButton from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_text_box_widget.py b/tests/unit_tests/test_text_box_widget.py index 1c706c7e..65f0f719 100644 --- a/tests/unit_tests/test_text_box_widget.py +++ b/tests/unit_tests/test_text_box_widget.py @@ -1,6 +1,6 @@ import pytest -from bec_widgets.widgets.text_box.text_box import DEFAULT_TEXT, TextBox +from bec_widgets.widgets.editors.text_box.text_box import DEFAULT_TEXT, TextBox from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_toggle.py b/tests/unit_tests/test_toggle.py index d840a6d3..0a8fa6df 100644 --- a/tests/unit_tests/test_toggle.py +++ b/tests/unit_tests/test_toggle.py @@ -1,7 +1,7 @@ import pytest from qtpy.QtCore import QPointF, Qt -from bec_widgets.widgets.toggle.toggle import ToggleSwitch +from bec_widgets.widgets.utility.toggle.toggle import ToggleSwitch @pytest.fixture diff --git a/tests/unit_tests/test_utils_bec_signal_proxy.py b/tests/unit_tests/test_utils_bec_signal_proxy.py index 0b73f85c..2a549c25 100644 --- a/tests/unit_tests/test_utils_bec_signal_proxy.py +++ b/tests/unit_tests/test_utils_bec_signal_proxy.py @@ -4,7 +4,7 @@ import pyqtgraph as pg import pytest from bec_widgets.utils.bec_signal_proxy import BECSignalProxy -from bec_widgets.widgets.dap_combo_box.dap_combo_box import DapComboBox +from bec_widgets.widgets.dap.dap_combo_box.dap_combo_box import DapComboBox from .client_mocks import mocked_client from .conftest import create_widget @@ -14,7 +14,7 @@ from .conftest import create_widget def dap_combo_box(qtbot, mocked_client): """Fixture for TextBox widget to test BECSignalProxy with a simple widget""" with mock.patch( - "bec_widgets.widgets.dap_combo_box.dap_combo_box.DapComboBox._validate_dap_model", + "bec_widgets.widgets.dap.dap_combo_box.dap_combo_box.DapComboBox._validate_dap_model", return_value=True, ): widget = create_widget(qtbot, DapComboBox, client=mocked_client) diff --git a/tests/unit_tests/test_utils_plot_indicators.py b/tests/unit_tests/test_utils_plot_indicators.py index 6dbb8d3c..3dcdeea4 100644 --- a/tests/unit_tests/test_utils_plot_indicators.py +++ b/tests/unit_tests/test_utils_plot_indicators.py @@ -1,8 +1,7 @@ -import pyqtgraph as pg import pytest from qtpy.QtCore import QPointF -from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget +from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget from .client_mocks import mocked_client diff --git a/tests/unit_tests/test_vscode_widget.py b/tests/unit_tests/test_vscode_widget.py index af8e8d30..d4210cba 100644 --- a/tests/unit_tests/test_vscode_widget.py +++ b/tests/unit_tests/test_vscode_widget.py @@ -5,14 +5,14 @@ from unittest import mock import pytest -from bec_widgets.widgets.vscode.vscode import VSCodeEditor +from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor from .client_mocks import mocked_client @pytest.fixture def vscode_widget(qtbot, mocked_client): - with mock.patch("bec_widgets.widgets.vscode.vscode.subprocess.Popen") as mock_popen: + with mock.patch("bec_widgets.widgets.editors.vscode.vscode.subprocess.Popen") as mock_popen: widget = VSCodeEditor(client=mocked_client) qtbot.addWidget(widget) qtbot.waitExposed(widget) @@ -25,12 +25,16 @@ def test_vscode_widget(qtbot, vscode_widget): def test_start_server(qtbot, mocked_client): - with mock.patch("bec_widgets.widgets.vscode.vscode.os.killpg") as mock_killpg: - with mock.patch("bec_widgets.widgets.vscode.vscode.os.getpgid") as mock_getpgid: - with mock.patch("bec_widgets.widgets.vscode.vscode.subprocess.Popen") as mock_popen: - with mock.patch("bec_widgets.widgets.vscode.vscode.select.select") as mock_select: + with mock.patch("bec_widgets.widgets.editors.vscode.vscode.os.killpg") as mock_killpg: + with mock.patch("bec_widgets.widgets.editors.vscode.vscode.os.getpgid") as mock_getpgid: + with mock.patch( + "bec_widgets.widgets.editors.vscode.vscode.subprocess.Popen" + ) as mock_popen: + with mock.patch( + "bec_widgets.widgets.editors.vscode.vscode.select.select" + ) as mock_select: with mock.patch( - "bec_widgets.widgets.vscode.vscode.get_free_port" + "bec_widgets.widgets.editors.vscode.vscode.get_free_port" ) as mock_get_free_port: mock_get_free_port.return_value = 12345 mock_process = mock.Mock() @@ -61,9 +65,9 @@ def test_start_server(qtbot, mocked_client): @pytest.fixture def patched_vscode_process(qtbot, vscode_widget): - with mock.patch("bec_widgets.widgets.vscode.vscode.os.killpg") as mock_killpg: + with mock.patch("bec_widgets.widgets.editors.vscode.vscode.os.killpg") as mock_killpg: mock_killpg.reset_mock() - with mock.patch("bec_widgets.widgets.vscode.vscode.os.getpgid") as mock_getpgid: + with mock.patch("bec_widgets.widgets.editors.vscode.vscode.os.getpgid") as mock_getpgid: mock_getpgid.return_value = 123 vscode_widget.process = mock.Mock() yield vscode_widget, mock_killpg diff --git a/tests/unit_tests/test_waveform1d.py b/tests/unit_tests/test_waveform1d.py index 95697a99..57d9cb5f 100644 --- a/tests/unit_tests/test_waveform1d.py +++ b/tests/unit_tests/test_waveform1d.py @@ -5,8 +5,12 @@ import numpy as np import pytest from bec_lib.scan_items import ScanItem -from bec_widgets.widgets.figure import BECFigure -from bec_widgets.widgets.figure.plots.waveform.waveform_curve import CurveConfig, Signal, SignalData +from bec_widgets.widgets.containers.figure import BECFigure +from bec_widgets.widgets.containers.figure.plots.waveform.waveform_curve import ( + CurveConfig, + Signal, + SignalData, +) from .client_mocks import mocked_client from .conftest import create_widget diff --git a/tests/unit_tests/test_waveform_widget.py b/tests/unit_tests/test_waveform_widget.py index 0bf07e90..607a2897 100644 --- a/tests/unit_tests/test_waveform_widget.py +++ b/tests/unit_tests/test_waveform_widget.py @@ -8,12 +8,14 @@ from qtpy.QtWidgets import QApplication from bec_widgets.qt_utils.settings_dialog import SettingsDialog from bec_widgets.utils.colors import apply_theme, get_theme_palette, set_theme from bec_widgets.utils.linear_region_selector import LinearRegionWrapper -from bec_widgets.widgets.figure.plots.axis_settings import AxisSettings -from bec_widgets.widgets.waveform.waveform_popups.curve_dialog.curve_dialog import CurveSettings -from bec_widgets.widgets.waveform.waveform_popups.dap_summary_dialog.dap_summary_dialog import ( +from bec_widgets.widgets.containers.figure.plots.axis_settings import AxisSettings +from bec_widgets.widgets.plots.waveform.waveform_popups.curve_dialog.curve_dialog import ( + CurveSettings, +) +from bec_widgets.widgets.plots.waveform.waveform_popups.dap_summary_dialog.dap_summary_dialog import ( FitSummaryWidget, ) -from bec_widgets.widgets.waveform.waveform_widget import BECWaveformWidget +from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget from .client_mocks import mocked_client from .conftest import create_widget @@ -252,16 +254,6 @@ def test_toolbar_auto_range_action_triggered(waveform_widget, mock_waveform, qtb waveform_widget.waveform.set_auto_range.assert_called_once_with(True, "xy") -def test_toolbar_fit_params_action_triggered(qtbot, waveform_widget): - action = waveform_widget.toolbar.widgets["fit_params"].action - with patch( - "bec_widgets.widgets.waveform.waveform_widget.FitSummaryWidget" - ) as MockFitSummaryWidget: - mock_dialog_instance = MockFitSummaryWidget.return_value - action.trigger() - mock_dialog_instance.exec.assert_called_once() - - def test_enable_mouse_pan_mode(qtbot, waveform_widget): action_drag = waveform_widget.toolbar.widgets["drag_mode"].action action_rectangle = waveform_widget.toolbar.widgets["rectangle_mode"].action diff --git a/tests/unit_tests/test_website_widget.py b/tests/unit_tests/test_website_widget.py index 900e6542..822f07de 100644 --- a/tests/unit_tests/test_website_widget.py +++ b/tests/unit_tests/test_website_widget.py @@ -1,7 +1,7 @@ import pytest from qtpy.QtCore import QUrl -from bec_widgets.widgets.website.website import WebsiteWidget +from bec_widgets.widgets.editors.website.website import WebsiteWidget from .client_mocks import mocked_client