bec-widgets 1.17.2__py3-none-any.whl → 1.18.0__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.
@@ -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.0
4
4
  Summary: BEC Widgets
5
5
  Project-URL: Bug Tracker, https://gitlab.psi.ch/bec/bec_widgets/issues
6
6
  Project-URL: Homepage, https://gitlab.psi.ch/bec/bec_widgets
@@ -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=B98wCPZX2DlBZgFN7_lKsUbqRTtbKP6e00Ix0CRm97M,225868
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=RnI9kd_-U9csdK3_V2XwZRXeI4YpJgvxYDOXcSbdRyM,1219
8
+ README.md,sha256=KgdKusjlvEvFtdNZCeDMO91y77MWK2iDcYMDziksOr4,2553
9
+ pyproject.toml,sha256=qxhkAQWpSc-KQsj-Q57XvePUTKf0jVZfMdcp-r8-THs,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
@@ -268,6 +268,15 @@ bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.py,
268
268
  bec_widgets/widgets/plots/waveform/waveform_popups/curve_dialog/curve_dialog.ui,sha256=vaOfrygcQp3-H82AkMUHgV2v0Y_TmRO5KLui-bWoado,11056
269
269
  bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
270
270
  bec_widgets/widgets/plots/waveform/waveform_popups/dap_summary_dialog/dap_summary_dialog.py,sha256=78vAXX_x5vi1XMtncOHvTvfgGnZJNSkRjOAnCOBE26U,1047
271
+ bec_widgets/widgets/plots_next_gen/plot_base.py,sha256=WwRp1bKhnFpMkZNDSxNvn2v5YxOxcFH0ISaxeK3KLTg,20941
272
+ bec_widgets/widgets/plots_next_gen/setting_menus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
+ bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings.py,sha256=GpgTIYa7t4q9G8hF0rg_qJW2FgbrkvnsMMuqFKJR1fA,3567
274
+ bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_horizontal.ui,sha256=ye-guaRU_jhu7sHZS-9AjBjLrCtA1msOD0dszu4o9x8,11785
275
+ bec_widgets/widgets/plots_next_gen/setting_menus/axis_settings_vertical.ui,sha256=VR0BgkNAZWRXZPCvX3kMQwM0GLahgM_k2XYmSNbHM64,11235
276
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
277
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/mouse_interactions.py,sha256=q8Ree9UA6ZPC_Z197aNQOFhNU6cELUdJn_218VoacmM,3195
278
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/plot_export.py,sha256=9xbpMtaBuY8kvzTSkEeFF52qJloEexHtPbGzU2f2n3s,2361
279
+ bec_widgets/widgets/plots_next_gen/toolbar_bundles/save_state.py,sha256=a7yCJQ_8HVAYN2dHcbxAjo3nJOSUUQZ7RJuUuGCXDBU,1740
271
280
  bec_widgets/widgets/progress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
272
281
  bec_widgets/widgets/progress/bec_progressbar/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
273
282
  bec_widgets/widgets/progress/bec_progressbar/bec_progress_bar.pyproject,sha256=Pb3n9seM95_8myKJ0pv_9IcfJDNJJNOFBskuRdEVzhU,33
@@ -332,8 +341,8 @@ bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py,sha256=Z
332
341
  bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject,sha256=Lbi9zb6HNlIq14k6hlzR-oz6PIFShBuF7QxE6d87d64,34
333
342
  bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py,sha256=CzChz2SSETYsR8-36meqWnsXCT-FIy_J_xeU5coWDY8,1350
334
343
  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,,
344
+ bec_widgets-1.18.0.dist-info/METADATA,sha256=RnI9kd_-U9csdK3_V2XwZRXeI4YpJgvxYDOXcSbdRyM,1219
345
+ bec_widgets-1.18.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
346
+ bec_widgets-1.18.0.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
347
+ bec_widgets-1.18.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
348
+ bec_widgets-1.18.0.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.0"
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]