bec-widgets 1.17.2__py3-none-any.whl → 1.18.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. .gitlab-ci.yml +5 -6
  2. CHANGELOG.md +37 -0
  3. PKG-INFO +1 -4
  4. README.md +15 -19
  5. bec_widgets/cli/generate_cli.py +15 -6
  6. bec_widgets/examples/jupyter_console/jupyter_console_window.py +12 -0
  7. bec_widgets/qt_utils/round_frame.py +6 -4
  8. bec_widgets/qt_utils/side_panel.py +60 -79
  9. bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py +17 -0
  10. bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject +1 -0
  11. bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py +54 -0
  12. bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py +1 -1
  13. bec_widgets/widgets/plots_next_gen/plot_base.py +571 -0
  14. bec_widgets/widgets/plots_next_gen/setting_menus/__init__.py +0 -0
  15. bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings.py +95 -0
  16. bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_horizontal.ui +256 -0
  17. bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_vertical.ui +240 -0
  18. bec_widgets/widgets/plots_next_gen/toolbar_bundles/__init__.py +0 -0
  19. bec_widgets/widgets/plots_next_gen/toolbar_bundles/mouse_interactions.py +88 -0
  20. bec_widgets/widgets/plots_next_gen/toolbar_bundles/plot_export.py +63 -0
  21. bec_widgets/widgets/plots_next_gen/toolbar_bundles/save_state.py +48 -0
  22. {bec_widgets-1.17.2.dist-info → bec_widgets-1.18.1.dist-info}/METADATA +1 -4
  23. {bec_widgets-1.17.2.dist-info → bec_widgets-1.18.1.dist-info}/RECORD +27 -15
  24. pyproject.toml +1 -2
  25. {bec_widgets-1.17.2.dist-info → bec_widgets-1.18.1.dist-info}/WHEEL +0 -0
  26. {bec_widgets-1.17.2.dist-info → bec_widgets-1.18.1.dist-info}/entry_points.txt +0 -0
  27. {bec_widgets-1.17.2.dist-info → bec_widgets-1.18.1.dist-info}/licenses/LICENSE +0 -0
@@ -0,0 +1,48 @@
1
+ from bec_widgets.qt_utils.error_popups import SafeSlot
2
+ from bec_widgets.qt_utils.toolbar import MaterialIconAction, ToolbarBundle
3
+
4
+
5
+ class SaveStateBundle(ToolbarBundle):
6
+ """
7
+ A bundle of actions that are hooked in this constructor itself,
8
+ so that you can immediately connect the signals and toggle states.
9
+
10
+ This bundle is for a toolbar that controls saving the state of the widget.
11
+ """
12
+
13
+ def __init__(self, bundle_id="mouse_interaction", target_widget=None, **kwargs):
14
+ super().__init__(bundle_id=bundle_id, actions=[], **kwargs)
15
+ self.target_widget = target_widget
16
+
17
+ # Create each MaterialIconAction with a parent
18
+ # so the signals can fire even if the toolbar isn't added yet.
19
+ save_state = MaterialIconAction(
20
+ icon_name="download", tooltip="Save Widget State", parent=self.target_widget
21
+ )
22
+ load_state = MaterialIconAction(
23
+ icon_name="upload", tooltip="Load Widget State", parent=self.target_widget
24
+ )
25
+
26
+ # Add them to the bundle
27
+ self.add_action("save", save_state)
28
+ self.add_action("matplotlib", load_state)
29
+
30
+ # Immediately connect signals
31
+ save_state.action.triggered.connect(self.save_state_dialog)
32
+ load_state.action.triggered.connect(self.load_state_dialog)
33
+
34
+ @SafeSlot()
35
+ def save_state_dialog(self):
36
+ """
37
+ Open the export dialog to save a state of the widget.
38
+ """
39
+ if self.target_widget:
40
+ self.target_widget.state_manager.save_state()
41
+
42
+ @SafeSlot()
43
+ def load_state_dialog(self):
44
+ """
45
+ Load a saved state of the widget.
46
+ """
47
+ if self.target_widget:
48
+ self.target_widget.state_manager.load_state()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: bec_widgets
3
- Version: 1.17.2
3
+ Version: 1.18.1
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -28,8 +28,5 @@ Requires-Dist: pytest-random-order~=1.1; extra == 'dev'
28
28
  Requires-Dist: pytest-timeout~=2.2; extra == 'dev'
29
29
  Requires-Dist: pytest-xvfb~=3.0; extra == 'dev'
30
30
  Requires-Dist: pytest~=8.0; extra == 'dev'
31
- Provides-Extra: pyqt6
32
- Requires-Dist: pyqt6-webengine>=6.7; extra == 'pyqt6'
33
- Requires-Dist: pyqt6>=6.7; extra == 'pyqt6'
34
31
  Provides-Extra: pyside6
35
32
  Requires-Dist: pyside6==6.7.2; extra == 'pyside6'
@@ -1,12 +1,12 @@
1
1
  .gitignore,sha256=cMQ1MLmnoR88aMCCJwUyfoTnufzl4-ckmHtlFUqHcT4,3253
2
- .gitlab-ci.yml,sha256=CLlFGYRGKp4FxCPTkyF9p-7qx67KmbM9Yok9JQEU_Ls,8677
2
+ .gitlab-ci.yml,sha256=PuL-FmkTHm7qs467Mh9D8quWcEj4tgEA-UUGDieMuWk,8774
3
3
  .pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
4
4
  .readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
5
- CHANGELOG.md,sha256=Pax-uPAaYn8csLuucWlT_ny-E9Oo_E-Ir94imzNuv_M,225112
5
+ CHANGELOG.md,sha256=CYVrKKbfa8jeD9NzMInVc9kFdx3tZqNJ2ZXkmhRZnNE,226269
6
6
  LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
7
- PKG-INFO,sha256=Xieot1CKf9UiNlNzp6GtvSokBCzpDaGWAjaBexmeez4,1339
8
- README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
9
- pyproject.toml,sha256=LTLlpnOWmwLbVgsGbAyIeQyIfWNeU4DMTVz4FdKgfOM,2596
7
+ PKG-INFO,sha256=tOPWBAYB-MCJ9z0WrgbAX6T0h_Ymanlu0pyw581mgeQ,1219
8
+ README.md,sha256=KgdKusjlvEvFtdNZCeDMO91y77MWK2iDcYMDziksOr4,2553
9
+ pyproject.toml,sha256=zGg4kbXmhAb2M5K94u23uQ_TpEVYfZKS0huieGdXUwQ,2549
10
10
  .git_hooks/pre-commit,sha256=n3RofIZHJl8zfJJIUomcMyYGFi_rwq4CC19z0snz3FI,286
11
11
  .gitlab/issue_templates/bug_report_template.md,sha256=gAuyEwl7XlnebBrkiJ9AqffSNOywmr8vygUFWKTuQeI,386
12
12
  .gitlab/issue_templates/documentation_update_template.md,sha256=FHLdb3TS_D9aL4CYZCjyXSulbaW5mrN2CmwTaeLPbNw,860
@@ -26,7 +26,7 @@ bec_widgets/cli/__init__.py,sha256=d0Q6Fn44e7wFfLabDOBxpcJ1DPKWlFunGYDUBmO-4hA,2
26
26
  bec_widgets/cli/auto_updates.py,sha256=Pj8OHlSlKN3JOAmuuBC5oUMzdfC8TYRY7QKT5BQ2cZo,5171
27
27
  bec_widgets/cli/client.py,sha256=QI27Eb6ehePBpFVhNzEFRfxxEOKTMFoCN9LNexsi8-g,99850
28
28
  bec_widgets/cli/client_utils.py,sha256=DXHHw1LNkKVCApbWmOAdZqU_qdvvqx28QiWV-Uf-jos,12207
29
- bec_widgets/cli/generate_cli.py,sha256=2BFNgxM_0XLy2OXxG_SX0rgPHFc27oq0_yoOI2h2Rgw,6605
29
+ bec_widgets/cli/generate_cli.py,sha256=lT-eEXEPpzk9cPrfFVf0U5gxQg7HF2oulxDH16T-SBk,6849
30
30
  bec_widgets/cli/server.py,sha256=Hzhhzhc9PQhTtjpNeu8Jmbmahad0DbyieutaRp7Vejc,10485
31
31
  bec_widgets/cli/rpc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
32
32
  bec_widgets/cli/rpc/rpc_base.py,sha256=1qxtzUuxy77Z0jX8my5EmbS3vE-bYlTp5RvZ2zjSDCA,6002
@@ -38,7 +38,7 @@ bec_widgets/examples/general_app/general_app.py,sha256=PoFCTuA_1yqrpgthASpYFgH7J
38
38
  bec_widgets/examples/general_app/general_app.ui,sha256=TsejkM3Z8znnixyqxoj4SwhIIpIzTAuGAMkGXSS1aT8,10479
39
39
  bec_widgets/examples/general_app/web_links.py,sha256=d5OgzgI9zb-NAC0pOGanOtJX3nZoe4x8QuQTw-_hK_8,434
40
40
  bec_widgets/examples/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
41
- bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=mXU6G2PgbxOIEnHxn-PHJMkthAAh9kgVCiOwHQNozl0,7075
41
+ bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=ChpRl673_x5Tef92IAMuNKPKTS2YByGeg5qt08pFv-M,7494
42
42
  bec_widgets/examples/plugin_example_pyside/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
43
  bec_widgets/examples/plugin_example_pyside/main.py,sha256=zDP5wO7wb3BVsQ15HOCRT1nNmCujIVRvSXZ3Txje8L0,549
44
44
  bec_widgets/examples/plugin_example_pyside/registertictactoe.py,sha256=cVhBnP0qx5j9Jft-VeKvlTFE-bX58hbP45CX0f4r5pM,535
@@ -52,9 +52,9 @@ bec_widgets/qt_utils/compact_popup.py,sha256=3yeb-GJ1PUla5Q_hT0XDKqvyIEH9yV_eGid
52
52
  bec_widgets/qt_utils/error_popups.py,sha256=7bL-Lil1G8reQPaRZo8NfG_7Cq2Y0HkF3KREJUE0ZlQ,11545
53
53
  bec_widgets/qt_utils/palette_viewer.py,sha256=--B0x7aE7bniHIeuuLY_pH8yBDrTTXaE0IDrC_AM1mo,6326
54
54
  bec_widgets/qt_utils/redis_message_waiter.py,sha256=fvL_QgC0cTDv_FPJdRyp5AKjf401EJU4z3r38p47ydY,1745
55
- bec_widgets/qt_utils/round_frame.py,sha256=wC7R5y50Cbb4RoGqDaEjO8SnhCZifgMkL6zOmo2QUgE,5782
55
+ bec_widgets/qt_utils/round_frame.py,sha256=JKVEcPY5TAEQcj2XeCyvlMzE41gUWgLaIEDOSQjTC3Y,5812
56
56
  bec_widgets/qt_utils/settings_dialog.py,sha256=NhtzTer_xzlB2lLLrGklkI1QYLJEWQpJoZbCz4o5daI,3645
57
- bec_widgets/qt_utils/side_panel.py,sha256=IYeDrliW40x1EBlCSCGBsfvt8rjhfGHmId4cUK1l7OM,12346
57
+ bec_widgets/qt_utils/side_panel.py,sha256=H2Ko7FPYwQ2Nemrud-q-rmqzHGO8vly_pzE_ySEfoGQ,12569
58
58
  bec_widgets/qt_utils/toolbar.py,sha256=YY_-UGc7uZhahYn7xnTvBGbalmTkpTa4WLikpsHwnMw,24433
59
59
  bec_widgets/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
60
60
  bec_widgets/tests/utils.py,sha256=GbQtN7qf9n-8FoAfNddZ4aAqA7oBo_hGAlnKELd6Xzw,6943
@@ -184,12 +184,15 @@ bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit.pypro
184
184
  bec_widgets/widgets/control/device_input/device_line_edit/device_line_edit_plugin.py,sha256=LoG1VyO21pZ9dbnDVU03xzqgP8P1oEmdeotlkYs_pE8,1466
185
185
  bec_widgets/widgets/control/device_input/device_line_edit/register_device_line_edit.py,sha256=NTB3HghW5S7NvUlPe_k_uFYQLWPYgjgln2bAYipfkpM,527
186
186
  bec_widgets/widgets/control/device_input/signal_combobox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
187
+ bec_widgets/widgets/control/device_input/signal_combobox/register_signal_combo_box.py,sha256=VEdFRUfLph7JE2arcnzHw8etsE-4wZkwyzlNLMJBsZk,526
188
+ bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box.pyproject,sha256=xod6iyRD-WD0Uk6LWXjSxFJCQy-831pvTkKcw2FAdnM,33
189
+ bec_widgets/widgets/control/device_input/signal_combobox/signal_combo_box_plugin.py,sha256=sstqm2KtyR5wwOIYJRbzOqHMq5_9ExKP-YS5qV5ACrA,1373
187
190
  bec_widgets/widgets/control/device_input/signal_combobox/signal_combobox.py,sha256=0aOAq3e9MdZMXTGJQY7WqQSvl-oPnqwrfHjBKGzeRAI,4572
188
191
  bec_widgets/widgets/control/device_input/signal_line_edit/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
189
192
  bec_widgets/widgets/control/device_input/signal_line_edit/register_signal_line_edit.py,sha256=aQLTy_3gbji0vq5VvvAddHFimpwGGaMYJy5iGgX23aM,527
190
193
  bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.py,sha256=B1xnzP0XYf8PiOLj8pu7kVMhq3ZtFPRbQb84nXsKHI0,5174
191
194
  bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit.pyproject,sha256=3NBnjBB6JRuF2W9-SR6x09KO1C2oB1IEV3VW__miIgI,34
192
- bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py,sha256=wIaGuYgMYOHswkC6cA4ZyacpfQsjMXn4PPAfvsJoVfU,1326
195
+ bec_widgets/widgets/control/device_input/signal_line_edit/signal_line_edit_plugin.py,sha256=t2VBGsbysCL6154Z5Ny5Nk2UWcURMGS-ibVKiRvYs6Y,1384
193
196
  bec_widgets/widgets/control/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
194
197
  bec_widgets/widgets/control/scan_control/register_scan_control.py,sha256=j7KrYSn9O6wp6ay2Yb7BWDjdbWzpkSLcCI0neeZi048,483
195
198
  bec_widgets/widgets/control/scan_control/scan_control.py,sha256=Nixsb7NrEn0eQzeax8jd2o2_omlpKN5s6IcWRsL_JhQ,18109
@@ -268,6 +271,15 @@ bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py,
268
271
  bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui,sha256=vaOfrygcQp3-H82AkMUHgV2v0Y_TmRO5KLui-bWoado,11056
269
272
  bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
273
  bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py,sha256=78vAXX_x5vi1XMtncOHvTvfgGnZJNSkRjOAnCOBE26U,1047
274
+ bec_widgets/widgets/plots_next_gen/plot_base.py,sha256=WwRp1bKhnFpMkZNDSxNvn2v5YxOxcFH0ISaxeK3KLTg,20941
275
+ bec_widgets/widgets/plots_next_gen/setting_menus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
276
+ bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings.py,sha256=GpgTIYa7t4q9G8hF0rg_qJW2FgbrkvnsMMuqFKJR1fA,3567
277
+ bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_horizontal.ui,sha256=ye-guaRU_jhu7sHZS-9AjBjLrCtA1msOD0dszu4o9x8,11785
278
+ bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_vertical.ui,sha256=VR0BgkNAZWRXZPCvX3kMQwM0GLahgM_k2XYmSNbHM64,11235
279
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
280
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/mouse_interactions.py,sha256=q8Ree9UA6ZPC_Z197aNQOFhNU6cELUdJn_218VoacmM,3195
281
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/plot_export.py,sha256=9xbpMtaBuY8kvzTSkEeFF52qJloEexHtPbGzU2f2n3s,2361
282
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/save_state.py,sha256=a7yCJQ_8HVAYN2dHcbxAjo3nJOSUUQZ7RJuUuGCXDBU,1740
271
283
  bec_widgets/widgets/progress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
272
284
  bec_widgets/widgets/progress/bec_progressbar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
285
  bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject,sha256=Pb3n9seM95_8myKJ0pv_9IcfJDNJJNOFBskuRdEVzhU,33
@@ -332,8 +344,8 @@ bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py,sha256=Z
332
344
  bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject,sha256=Lbi9zb6HNlIq14k6hlzR-oz6PIFShBuF7QxE6d87d64,34
333
345
  bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py,sha256=CzChz2SSETYsR8-36meqWnsXCT-FIy_J_xeU5coWDY8,1350
334
346
  bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py,sha256=rMpZ1CaoucwobgPj1FuKTnt07W82bV1GaSYdoqcdMb8,521
335
- bec_widgets-1.17.2.dist-info/METADATA,sha256=Xieot1CKf9UiNlNzp6GtvSokBCzpDaGWAjaBexmeez4,1339
336
- bec_widgets-1.17.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
337
- bec_widgets-1.17.2.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
338
- bec_widgets-1.17.2.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
339
- bec_widgets-1.17.2.dist-info/RECORD,,
347
+ bec_widgets-1.18.1.dist-info/METADATA,sha256=tOPWBAYB-MCJ9z0WrgbAX6T0h_Ymanlu0pyw581mgeQ,1219
348
+ bec_widgets-1.18.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
349
+ bec_widgets-1.18.1.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
350
+ bec_widgets-1.18.1.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
351
+ bec_widgets-1.18.1.dist-info/RECORD,,
pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "bec_widgets"
7
- version = "1.17.2"
7
+ version = "1.18.1"
8
8
  description = "BEC Widgets"
9
9
  requires-python = ">=3.10"
10
10
  classifiers = [
@@ -37,7 +37,6 @@ dev = [
37
37
  "pytest-xvfb~=3.0",
38
38
  "pytest~=8.0",
39
39
  ]
40
- pyqt6 = ["PyQt6>=6.7", "PyQt6-WebEngine>=6.7"]
41
40
  pyside6 = ["PySide6==6.7.2"]
42
41
 
43
42
  [project.urls]