bec-widgets 0.90.0__py3-none-any.whl → 0.92.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.
- CHANGELOG.md +34 -34
- PKG-INFO +1 -1
- bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
- bec_widgets/assets/designer_icons/code.png +0 -0
- bec_widgets/assets/designer_icons/color_button.png +0 -0
- bec_widgets/assets/designer_icons/device_box.png +0 -0
- bec_widgets/assets/designer_icons/device_combo_box.png +0 -0
- bec_widgets/assets/designer_icons/device_line_edit.png +0 -0
- bec_widgets/assets/designer_icons/dock_area.png +0 -0
- bec_widgets/assets/designer_icons/games.png +0 -0
- bec_widgets/assets/designer_icons/position_indicator.png +0 -0
- bec_widgets/assets/designer_icons/queue.png +0 -0
- bec_widgets/assets/designer_icons/ring_progress.png +0 -0
- bec_widgets/assets/designer_icons/scan_control.png +0 -0
- bec_widgets/assets/designer_icons/spinner.png +0 -0
- bec_widgets/assets/designer_icons/status.png +0 -0
- bec_widgets/assets/designer_icons/stop.png +0 -0
- bec_widgets/assets/designer_icons/text.png +0 -0
- bec_widgets/assets/designer_icons/toggle.png +0 -0
- bec_widgets/assets/designer_icons/web.png +0 -0
- bec_widgets/assets/status_icons/error.svg +3 -0
- bec_widgets/assets/status_icons/not_connected.svg +3 -0
- bec_widgets/assets/status_icons/refresh.svg +3 -0
- bec_widgets/assets/status_icons/running.svg +3 -0
- bec_widgets/assets/status_icons/warning.svg +3 -0
- bec_widgets/assets/toolbar_icons/attach_all.svg +3 -0
- bec_widgets/assets/toolbar_icons/device_box.svg +3 -0
- bec_widgets/assets/toolbar_icons/image.svg +3 -0
- bec_widgets/assets/toolbar_icons/motor_map.svg +3 -0
- bec_widgets/assets/toolbar_icons/progress.svg +3 -0
- bec_widgets/assets/toolbar_icons/queue.svg +3 -0
- bec_widgets/assets/toolbar_icons/restore_state.svg +3 -0
- bec_widgets/assets/toolbar_icons/ring_progress.svg +3 -0
- bec_widgets/assets/toolbar_icons/save_state.svg +3 -0
- bec_widgets/assets/toolbar_icons/scan_control.svg +3 -0
- bec_widgets/assets/toolbar_icons/status.svg +3 -0
- bec_widgets/assets/toolbar_icons/terminal.svg +3 -0
- bec_widgets/assets/toolbar_icons/waveform.svg +3 -0
- bec_widgets/cli/client.py +1 -1
- bec_widgets/examples/general_app/__init__.py +0 -0
- bec_widgets/examples/general_app/general_app.py +92 -0
- bec_widgets/examples/general_app/general_app.ui +262 -0
- bec_widgets/examples/general_app/web_links.py +15 -0
- bec_widgets/examples/plugin_example_pyside/tictactoeplugin.py +8 -2
- bec_widgets/qt_utils/toolbar.py +52 -2
- bec_widgets/utils/generate_designer_plugin.py +1 -1
- bec_widgets/widgets/bec_queue/bec_queue_plugin.py +7 -2
- bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py +7 -2
- bec_widgets/widgets/bec_status_box/status_item.py +14 -8
- bec_widgets/widgets/color_button/color_button_plugin.py +3 -2
- bec_widgets/widgets/device_box/device_box_plugin.py +6 -1
- bec_widgets/widgets/device_combobox/{device_combobox_plugin.py → device_combo_box_plugin.py} +5 -3
- bec_widgets/widgets/device_combobox/device_combobox.py +1 -2
- bec_widgets/widgets/device_combobox/{register_device_combobox.py → register_device_combo_box.py} +1 -1
- bec_widgets/widgets/device_line_edit/device_line_edit_plugin.py +5 -3
- bec_widgets/widgets/dock/dock.py +68 -4
- bec_widgets/widgets/dock/dock_area.py +139 -29
- bec_widgets/widgets/dock/dock_area.pyproject +1 -0
- bec_widgets/widgets/dock/dock_area_plugin.py +59 -0
- bec_widgets/widgets/dock/register_dock_area.py +15 -0
- bec_widgets/widgets/position_indicator/__init__.py +0 -0
- bec_widgets/widgets/position_indicator/position_indicator_plugin.py +7 -2
- bec_widgets/widgets/ring_progress_bar/register_ring_progress_bar.py +15 -0
- bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject +1 -0
- bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py +58 -0
- bec_widgets/widgets/scan_control/register_scan_control.py +15 -0
- bec_widgets/widgets/scan_control/scan_control.pyproject +1 -0
- bec_widgets/widgets/scan_control/scan_control_plugin.py +58 -0
- bec_widgets/widgets/spinner/spinner_widget_plugin.py +7 -2
- bec_widgets/widgets/stop_button/stop_button_plugin.py +5 -3
- bec_widgets/widgets/text_box/register_text_box.py +15 -0
- bec_widgets/widgets/text_box/text_box.pyproject +1 -0
- bec_widgets/widgets/text_box/text_box_plugin.py +58 -0
- bec_widgets/widgets/toggle/toggle_switch_plugin.py +7 -2
- bec_widgets/widgets/vscode/register_vs_code_editor.py +15 -0
- bec_widgets/widgets/vscode/vs_code_editor.pyproject +1 -0
- bec_widgets/widgets/vscode/vs_code_editor_plugin.py +59 -0
- bec_widgets/widgets/waveform/bec_waveform_widget_plugin.py +1 -1
- bec_widgets/widgets/website/register_website_widget.py +15 -0
- bec_widgets/widgets/website/website_widget.pyproject +1 -0
- bec_widgets/widgets/website/website_widget_plugin.py +58 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/METADATA +1 -1
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/RECORD +90 -35
- pyproject.toml +1 -1
- tests/unit_tests/test_bec_dock.py +70 -30
- bec_widgets/widgets/color_button/assets/color_button.png +0 -0
- bec_widgets/widgets/device_combobox/assets/device_combobox_icon.png +0 -0
- bec_widgets/widgets/device_line_edit/assets/line_edit_icon.png +0 -0
- bec_widgets/widgets/stop_button/assets/stop.png +0 -0
- /bec_widgets/assets/designer_icons/{BECWaveformWidget.png → waveform.png} +0 -0
- /bec_widgets/widgets/device_combobox/{device_combobox.pyproject → device_combo_box.pyproject} +0 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/WHEEL +0 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/entry_points.txt +0 -0
- {bec_widgets-0.90.0.dist-info → bec_widgets-0.92.0.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md
CHANGED
@@ -1,5 +1,39 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v0.92.0 (2024-07-24)
|
4
|
+
|
5
|
+
### Feature
|
6
|
+
|
7
|
+
* feat(dock): dock style sheets updated ([`8ca60d5`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8ca60d54b3cfa621172ce097fc1ba514c47ebac7))
|
8
|
+
|
9
|
+
* feat(general_gui): general gui added ([`5696c99`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5696c993dc1c0da40ff3e99f754c246cc017ea32))
|
10
|
+
|
11
|
+
### Fix
|
12
|
+
|
13
|
+
* fix(dock): custom label can be created closable ([`4457ef2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4457ef2147e21b856c9dcaf63c81ba98002dcaf1))
|
14
|
+
|
15
|
+
* fix(device_combobox): set minimum size to 125px ([`1206e15`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1206e153094cd8505badf69a1461572a76b4c5ad))
|
16
|
+
|
17
|
+
## v0.91.0 (2024-07-23)
|
18
|
+
|
19
|
+
### Feature
|
20
|
+
|
21
|
+
* feat(dock_area): plugin added ([`a16b87a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a16b87ac28d164230dd2e8020f50ff3a63cd407e))
|
22
|
+
|
23
|
+
* feat(dock_area): Added toolbar to dock area to add widgets without CLI interactions ([`cce1367`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/cce1367a72fca7206d351894bd1831b7bbfa7ec6))
|
24
|
+
|
25
|
+
* feat(toolbar): expandable menu actions ([`28f26e9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/28f26e92a46063db1a194be552156a5d3b2c43e7))
|
26
|
+
|
27
|
+
### Fix
|
28
|
+
|
29
|
+
* fix(status_item): icons changed to material design ([`1b9c55a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1b9c55a46a0dfd8678c8e95ff64dd6e8cfb9233e))
|
30
|
+
|
31
|
+
* fix(plugins): Qt Designer plugins icons adjusted ([`f4844d2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f4844d2e067ce75dc64b89b230d7932b308ddfc2))
|
32
|
+
|
33
|
+
### Test
|
34
|
+
|
35
|
+
* test(dock_area): tests extended ([`06fab0e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/06fab0eab926cef5677d4988fd1fce09da342dd8))
|
36
|
+
|
3
37
|
## v0.90.0 (2024-07-23)
|
4
38
|
|
5
39
|
### Feature
|
@@ -80,8 +114,6 @@ This reverts commit 3798714369adf4023f833b7749d2f46a0ec74eee ([`fd6ae91`](https:
|
|
80
114
|
|
81
115
|
* feat(waveform_widget): BECWaveformWidget toolbar added import/export config ([`fa9b171`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/fa9b17191ddbb4043a658dae9aa0801e1dc22b84))
|
82
116
|
|
83
|
-
* feat(waveform_widget): BECWaveformWidget added with toolbar ([`755b394`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/755b394c1c4d7c443c442d89c630d08ce5415554))
|
84
|
-
|
85
117
|
### Fix
|
86
118
|
|
87
119
|
* fix(waveform_widget): plot API unified with BECFigure ([`2c8764a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2c8764a27de89b39b717032b58465e120ec57fbc))
|
@@ -113,35 +145,3 @@ curve Dialog colormap WIP ([`33495cf`](https://gitlab.psi.ch/bec/bec_widgets/-/c
|
|
113
145
|
### Test
|
114
146
|
|
115
147
|
* test(waveform_widget): test added ([`8d764e2`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8d764e2d46a1e017dadc3c4630648c1ca708afc2))
|
116
|
-
|
117
|
-
## v0.87.1 (2024-07-18)
|
118
|
-
|
119
|
-
### Fix
|
120
|
-
|
121
|
-
* fix(dock): added hasattr to cleanup method for widgets ([`d75c55b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d75c55b2b1ccf156fb789c7813f1c5bdf256f860))
|
122
|
-
|
123
|
-
* fix: add missing close() call, ensure jupyter console client.shutdown() is called in closeEvent ([`e52ee26`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e52ee2604cb35096f1bd833ca9516d8a34197d35))
|
124
|
-
|
125
|
-
* fix: BECWidget checks if it is a widget, and implements closeEvent and cleanup ([`d64758f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/d64758f268cad69e6a17bd52dc9913a6367d3cde))
|
126
|
-
|
127
|
-
* fix: add exit handlers for BECConnection objects ([`6202d22`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6202d224fe85c103a4c33bd8c255f18cfd027303))
|
128
|
-
|
129
|
-
### Refactor
|
130
|
-
|
131
|
-
* refactor: BECWidget is a mixin based on BECConnector, for each QWidget in BEC
|
132
|
-
|
133
|
-
Handles closeEvent() and RPC registering/unregistering ([`c7feb69`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c7feb6952d590b569f7b0cba3b019a9af0ce0c93))
|
134
|
-
|
135
|
-
## v0.87.0 (2024-07-17)
|
136
|
-
|
137
|
-
### Feature
|
138
|
-
|
139
|
-
* feat(qt_utils): added warning utility with simple API to setup warning message ([`787f749`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/787f74949bac27aaa51cbb43911919071481707c))
|
140
|
-
|
141
|
-
* feat(qt_utils): added error handle utility with popup messageBoxes ([`196ef7a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/196ef7afe11a1b5dcc536f8859dc3b6044ea628e))
|
142
|
-
|
143
|
-
### Unknown
|
144
|
-
|
145
|
-
* tests: add unit tests for error and warning message boxes ([`8f104cf`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8f104cf4024d3a4516e6aba5daa8fb78c85e2bfd))
|
146
|
-
|
147
|
-
## v0.86.0 (2024-07-17)
|
PKG-INFO
CHANGED
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#EA3323">
|
2
|
+
<path d="M479.85-265.87q19.8 0 32.69-12.46 12.9-12.46 12.9-32.26 0-19.8-12.75-32.98-12.74-13.17-32.54-13.17-19.8 0-32.69 13.16-12.9 13.15-12.9 32.95 0 19.8 12.75 32.28 12.74 12.48 32.54 12.48Zm-36.46-166.56h79.22v-262.61h-79.22v262.61Zm36.95 366.56q-86.2 0-161.5-32.39-75.3-32.4-131.74-88.84-56.44-56.44-88.84-131.73-32.39-75.3-32.39-161.59t32.39-161.67q32.4-75.37 88.75-131.34t131.69-88.62q75.34-32.65 161.67-32.65 86.34 0 161.78 32.61 75.45 32.6 131.37 88.5 55.93 55.89 88.55 131.45 32.63 75.56 32.63 161.87 0 86.29-32.65 161.58t-88.62 131.48q-55.97 56.18-131.42 88.76-75.46 32.58-161.67 32.58Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#EA3323">
|
2
|
+
<path d="m759.04-283.09-63.13-62q49.31-9.43 84.44-46.02 35.13-36.59 35.13-86.14 0-55.49-39.42-95.08-39.43-39.58-94.93-39.58h-153.3v-79.79h152.74q89.28 0 151.7 62.71Q894.7-566.28 894.7-477q0 63.7-38.26 115.96-38.27 52.26-97.4 77.95ZM596.83-443.61l-65.66-66.78h110.05v66.78h-44.39ZM804.96-56 58.48-802.48 106-850l746.48 746.48L804.96-56ZM443.22-265.87H279.43q-89.28 0-151.7-62.42Q65.3-390.72 65.3-480q0-72.57 43.09-129.54 43.09-56.98 112.09-76.07l70.13 70.7h-11.18q-55.73 0-95.32 39.3-39.59 39.31-39.59 95.61t39.66 95.61q39.66 39.3 95.5 39.3h163.54v79.22ZM319.35-446.61v-66.78h77.3l66.78 66.78H319.35Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFF55">
|
2
|
+
<path d="M478.3-145.87q-138.65 0-236.39-97.74-97.74-97.74-97.74-236.25t97.74-236.68q97.74-98.16 236.39-98.16 88.4 0 155.45 35.76 67.04 35.76 115.86 98.9V-814.7h66.78v274.92H540.91V-606h165.74q-38.56-57.74-95.3-93.33-56.74-35.58-133.05-35.58-106.88 0-180.89 73.98-74.02 73.99-74.02 180.83 0 106.84 74.02 180.93 74.02 74.08 180.91 74.08 80.16 0 147.74-46.08 67.59-46.09 95.16-121.83H803q-29.56 110.65-119.67 178.89-90.1 68.24-205.03 68.24Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#75FB4C">
|
2
|
+
<path d="m419.87-289.52 289.22-289.22-57.31-56.87L419.87-403.7 304.96-518.61l-56.31 56.87 171.22 172.22Zm60.21 223.65q-85.47 0-161.01-32.39-75.53-32.4-131.97-88.84-56.44-56.44-88.84-131.89-32.39-75.46-32.39-160.93 0-86.47 32.39-162.01 32.4-75.53 88.75-131.5t131.85-88.62q75.5-32.65 161.01-32.65 86.52 0 162.12 32.61 75.61 32.6 131.53 88.5 55.93 55.89 88.55 131.45Q894.7-566.58 894.7-480q0 85.55-32.65 161.07-32.65 75.53-88.62 131.9-55.97 56.37-131.42 88.77-75.46 32.39-161.93 32.39Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#F19E39">
|
2
|
+
<path d="M27.56-112.65 480-894.7l452.44 782.05H27.56Zm456.62-125.48q13.15 0 22.61-9.64 9.47-9.65 9.47-22.8t-9.64-22.33q-9.65-9.19-22.8-9.19t-22.61 9.36q-9.47 9.36-9.47 22.51 0 13.15 9.64 22.62 9.65 9.47 22.8 9.47ZM454-348h60v-219.48h-60V-348Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="m145.26-88.13-57.13-57.13 137.39-137.39H105.87v-79.22h256v256h-79.22v-119.65L145.26-88.13Zm669.48 0L677.91-225.52v119.65h-79.78v-256H854.7v79.22H734.48l137.39 137.39-57.13 57.13Zm-708.87-510v-79.78h119.65L88.13-814.74l57.13-57.13 137.39 137.39V-854.7h79.22v256.57h-256Zm492.26 0V-854.7h79.78v120.22l137.83-138.39 57.13 57.13-138.39 137.83H854.7v79.78H598.13Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M185.09-105.87q-32.51 0-55.87-23.35-23.35-23.36-23.35-55.87v-589.82q0-32.74 23.35-56.26 23.36-23.53 55.87-23.53h589.82q32.74 0 56.26 23.53 23.53 23.52 23.53 56.26v589.82q0 32.51-23.53 55.87-23.52 23.35-56.26 23.35H185.09Zm43.56-166.04h503.7L578-481.48l-132 171-93-127-124.35 165.57Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M443.78-28.43v-75Q305.65-118 211.54-212.11q-94.11-94.11-108.11-231.67h-75v-72.44h75Q118-654.35 212.11-748.46q94.11-94.11 231.67-108.11v-75h72.44v75q137.56 14 231.67 108.11Q842-654.35 856.57-516.22h75v72.44h-75q-14 137.56-108.11 231.67Q654.35-118 516.22-103.43v75h-72.44Zm36.12-152.66q123.4 0 211.21-87.7 87.8-87.71 87.8-211.11 0-123.4-87.7-211.21-87.71-87.8-211.11-87.8-123.4 0-211.21 87.7-87.8 87.71-87.8 211.11 0 123.4 87.7 211.21 87.71 87.8 211.11 87.8ZM480-330q-63 0-106.5-43.5T330-480q0-63 43.5-106.5T480-630q63 0 106.5 43.5T630-480q0 63-43.5 106.5T480-330Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M480-65.87q-87.51 0-162.97-31.89-75.47-31.89-131.43-87.84-55.95-55.96-87.84-131.43Q65.87-392.49 65.87-480q0-87.47 31.88-162.87 31.89-75.39 87.75-131.51 55.87-56.11 131.41-88.21Q392.44-894.7 480-894.7q15.96 0 27.78 12.16 11.83 12.16 11.83 28.07 0 15.9-11.83 27.73-11.82 11.83-27.78 11.83-139.31 0-237.11 97.8-97.8 97.8-97.8 237.1 0 139.31 97.8 237.12 97.8 97.8 237.1 97.8 139.31 0 237.12-97.8 97.8-97.8 97.8-237.11 0-15.96 11.83-27.78 11.83-11.83 27.73-11.83 15.91 0 28.07 11.83Q894.7-495.96 894.7-480q0 87.56-32.14 163.1-32.14 75.54-88.11 131.44-55.97 55.9-131.44 87.74Q567.55-65.87 480-65.87Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M336.04-487.39 145.09-678.35v156.65H65.87v-293H358.3v79.79H201.22l191.39 190.95-56.57 56.57ZM145.09-145.87q-32.51 0-55.87-23.35-23.35-23.36-23.35-55.87V-451.7h79.22v226.61H493v79.22H145.09Zm669.82-278.3v-310.74H428.3v-79.79h386.61q32.74 0 56.26 23.53 23.53 23.52 23.53 56.26v310.74h-79.79Zm79.79 60v218.87H553v-218.87h341.7Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M479.87-54q-87.96 0-165.74-33.42-77.79-33.43-135.53-91.18-57.75-57.74-91.18-135.66Q54-392.17 54-480.13q0-87.96 33.42-165.74 33.43-77.79 91.18-135.53 57.74-57.75 135.62-91.18Q392.09-906 480-906h36.22v340.7q24.82 10.69 40.8 33.52Q573-508.96 573-480.17q0 38.43-27.38 65.8Q518.24-387 479.79-387q-38.44 0-65.62-27.37Q387-441.74 387-480.17q0-28.79 15.98-51.61 15.98-22.83 40.8-33.52v-97.22Q378.22-650.39 336-599.76q-42.22 50.63-42.22 119.5 0 78.19 54.12 132.33 54.12 54.15 132.02 54.15 77.91 0 132.1-54.09 54.2-54.1 54.2-131.79 0-42.47-16.28-77.88-16.29-35.42-45.42-60.98l52.05-52.05q38.18 35.64 60.7 84.75 22.51 49.11 22.51 105.82 0 108.57-75.58 183.9-75.59 75.32-184.13 75.32-108.55 0-183.92-75.32-75.37-75.33-75.37-183.89 0-99.62 63.68-172.01 63.67-72.39 159.32-85.65v-93.22Q309.39-817.61 218.2-717.8 127-617.98 127-480.14q0 147.23 103.1 250.18Q333.19-127 480.14-127t249.9-103.02Q833-333.04 833-479.81q0-76.45-29.58-141.91-29.57-65.46-80.81-114.89l51.48-51.48q61.05 58.34 96.48 137.6Q906-571.23 906-479.73q0 87.82-33.42 165.6-33.43 77.79-91.18 135.53-57.74 57.75-135.66 91.18Q567.83-54 479.87-54Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M185.87-98.52v-681.39q0-32.74 23.35-56.26 23.36-23.53 55.87-23.53h429.82q32.74 0 56.26 23.53 23.53 23.52 23.53 56.26v681.39L480-224.17 185.87-98.52Zm79.22-120.39L480-309.18l214.91 90.27v-561H265.09v561Zm0-561h429.82-429.82Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M185.09-105.87q-32.93 0-56.08-23.14-23.14-23.15-23.14-56.08v-589.82q0-33.16 23.14-56.47 23.15-23.32 56.08-23.32h589.82q33.16 0 56.47 23.32 23.32 23.31 23.32 56.47v589.82q0 32.93-23.32 56.08-23.31 23.14-56.47 23.14H185.09Zm439.21-79.22h71l79.61-79.61v-40.39H744.3l-120 120ZM281-389.48l141-140 90 90L725.52-654 679-700.52l-167 167-90-90L234.48-436 281-389.48Zm-95.91 204.39h34.56l120-120h-71l-83.56 83.57v36.43Zm350.91 0 120-120h-71l-120 120h71Zm-159.87 0 120-120h-71l-120 120h71Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M286.83-277h60v-205h-60v205Zm326.91 0h60v-420h-60v420ZM450-277h60v-118h-60v118Zm0-205h60v-60h-60v60ZM185.09-105.87q-32.51 0-55.87-23.35-23.35-23.36-23.35-55.87v-589.82q0-32.74 23.35-56.26 23.36-23.53 55.87-23.53h589.82q32.74 0 56.26 23.53 23.53 23.52 23.53 56.26v589.82q0 32.51-23.53 55.87-23.52 23.35-56.26 23.35H185.09Z"/>
|
3
|
+
</svg>
|
@@ -0,0 +1,3 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 -960 960 960" width="48px" fill="#FFFFFF">
|
2
|
+
<path d="M145.09-145.87q-32.51 0-55.87-23.35-23.35-23.36-23.35-55.87v-509.82q0-32.74 23.35-56.26 23.36-23.53 55.87-23.53h669.82q32.74 0 56.26 23.53 23.53 23.52 23.53 56.26v509.82q0 32.51-23.53 55.87-23.52 23.35-56.26 23.35H145.09Zm0-79.22h669.82v-425.82H145.09v425.82ZM300-292l-42-42 103-104-104-104 43-42 146 146-146 146Zm190 4v-60h220v60H490Z"/>
|
3
|
+
</svg>
|
bec_widgets/cli/client.py
CHANGED
@@ -351,7 +351,7 @@ class BECDockArea(RPCBase, BECGuiClientMixin):
|
|
351
351
|
name: "str" = None,
|
352
352
|
position: "Literal['bottom', 'top', 'left', 'right', 'above', 'below']" = None,
|
353
353
|
relative_to: "BECDock | None" = None,
|
354
|
-
closable: "bool" =
|
354
|
+
closable: "bool" = True,
|
355
355
|
floating: "bool" = False,
|
356
356
|
prefix: "str" = "dock",
|
357
357
|
widget: "str | QWidget | None" = None,
|
File without changes
|
@@ -0,0 +1,92 @@
|
|
1
|
+
import os
|
2
|
+
import sys
|
3
|
+
|
4
|
+
from qtpy.QtCore import QSize
|
5
|
+
from qtpy.QtGui import QActionGroup, QIcon
|
6
|
+
from qtpy.QtWidgets import QApplication, QMainWindow, QStyle
|
7
|
+
|
8
|
+
import bec_widgets
|
9
|
+
from bec_widgets.examples.general_app.web_links import BECWebLinksMixin
|
10
|
+
from bec_widgets.utils.colors import apply_theme
|
11
|
+
from bec_widgets.utils.ui_loader import UILoader
|
12
|
+
|
13
|
+
MODULE_PATH = os.path.dirname(bec_widgets.__file__)
|
14
|
+
|
15
|
+
|
16
|
+
class BECGeneralApp(QMainWindow):
|
17
|
+
def __init__(self, parent=None):
|
18
|
+
super(BECGeneralApp, self).__init__(parent)
|
19
|
+
ui_file_path = os.path.join(os.path.dirname(__file__), "general_app.ui")
|
20
|
+
self.load_ui(ui_file_path)
|
21
|
+
|
22
|
+
self.resize(1280, 720)
|
23
|
+
|
24
|
+
self.ini_ui()
|
25
|
+
|
26
|
+
def ini_ui(self):
|
27
|
+
self._setup_icons()
|
28
|
+
self._hook_menubar_docs()
|
29
|
+
self._hook_theme_bar()
|
30
|
+
|
31
|
+
def load_ui(self, ui_file):
|
32
|
+
loader = UILoader(self)
|
33
|
+
self.ui = loader.loader(ui_file)
|
34
|
+
self.setCentralWidget(self.ui)
|
35
|
+
|
36
|
+
def _hook_menubar_docs(self):
|
37
|
+
# BEC Docs
|
38
|
+
self.ui.action_BEC_docs.triggered.connect(BECWebLinksMixin.open_bec_docs)
|
39
|
+
# BEC Widgets Docs
|
40
|
+
self.ui.action_BEC_widgets_docs.triggered.connect(BECWebLinksMixin.open_bec_widgets_docs)
|
41
|
+
# Bug report
|
42
|
+
self.ui.action_bug_report.triggered.connect(BECWebLinksMixin.open_bec_bug_report)
|
43
|
+
|
44
|
+
def change_theme(self, theme):
|
45
|
+
apply_theme(theme)
|
46
|
+
|
47
|
+
def _setup_icons(self):
|
48
|
+
help_icon = QApplication.style().standardIcon(QStyle.SP_MessageBoxQuestion)
|
49
|
+
bug_icon = QApplication.style().standardIcon(QStyle.SP_MessageBoxInformation)
|
50
|
+
computer_icon = QIcon.fromTheme("computer")
|
51
|
+
widget_icon = QIcon(os.path.join(MODULE_PATH, "assets", "designer_icons", "dock_area.png"))
|
52
|
+
|
53
|
+
self.ui.action_BEC_docs.setIcon(help_icon)
|
54
|
+
self.ui.action_BEC_widgets_docs.setIcon(help_icon)
|
55
|
+
self.ui.action_bug_report.setIcon(bug_icon)
|
56
|
+
|
57
|
+
self.ui.central_tab.setTabIcon(0, widget_icon)
|
58
|
+
self.ui.central_tab.setTabIcon(1, computer_icon)
|
59
|
+
|
60
|
+
def _hook_theme_bar(self):
|
61
|
+
self.ui.action_light.setCheckable(True)
|
62
|
+
self.ui.action_dark.setCheckable(True)
|
63
|
+
|
64
|
+
# Create an action group to make sure only one can be checked at a time
|
65
|
+
theme_group = QActionGroup(self)
|
66
|
+
theme_group.addAction(self.ui.action_light)
|
67
|
+
theme_group.addAction(self.ui.action_dark)
|
68
|
+
theme_group.setExclusive(True)
|
69
|
+
|
70
|
+
# Connect the actions to the theme change method
|
71
|
+
|
72
|
+
self.ui.action_light.triggered.connect(lambda: self.change_theme("light"))
|
73
|
+
self.ui.action_dark.triggered.connect(lambda: self.change_theme("dark"))
|
74
|
+
|
75
|
+
self.ui.action_dark.trigger()
|
76
|
+
|
77
|
+
|
78
|
+
def main(): # pragma: no cover
|
79
|
+
|
80
|
+
app = QApplication(sys.argv)
|
81
|
+
icon = QIcon()
|
82
|
+
icon.addFile(
|
83
|
+
os.path.join(MODULE_PATH, "assets", "app_icons", "BEC-Dark.png"), size=QSize(48, 48)
|
84
|
+
)
|
85
|
+
app.setWindowIcon(icon)
|
86
|
+
main_window = BECGeneralApp()
|
87
|
+
main_window.show()
|
88
|
+
sys.exit(app.exec_())
|
89
|
+
|
90
|
+
|
91
|
+
if __name__ == "__main__": # pragma: no cover
|
92
|
+
main()
|
@@ -0,0 +1,262 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ui version="4.0">
|
3
|
+
<class>MainWindow</class>
|
4
|
+
<widget class="QMainWindow" name="MainWindow">
|
5
|
+
<property name="geometry">
|
6
|
+
<rect>
|
7
|
+
<x>0</x>
|
8
|
+
<y>0</y>
|
9
|
+
<width>1718</width>
|
10
|
+
<height>1139</height>
|
11
|
+
</rect>
|
12
|
+
</property>
|
13
|
+
<property name="windowTitle">
|
14
|
+
<string>MainWindow</string>
|
15
|
+
</property>
|
16
|
+
<property name="tabShape">
|
17
|
+
<enum>QTabWidget::TabShape::Rounded</enum>
|
18
|
+
</property>
|
19
|
+
<widget class="QWidget" name="centralwidget">
|
20
|
+
<layout class="QVBoxLayout" name="verticalLayout_3">
|
21
|
+
<item>
|
22
|
+
<widget class="QTabWidget" name="central_tab">
|
23
|
+
<property name="currentIndex">
|
24
|
+
<number>0</number>
|
25
|
+
</property>
|
26
|
+
<widget class="QWidget" name="dock_area_tab">
|
27
|
+
<attribute name="title">
|
28
|
+
<string>Dock Area</string>
|
29
|
+
</attribute>
|
30
|
+
<layout class="QVBoxLayout" name="verticalLayout">
|
31
|
+
<property name="leftMargin">
|
32
|
+
<number>2</number>
|
33
|
+
</property>
|
34
|
+
<property name="topMargin">
|
35
|
+
<number>1</number>
|
36
|
+
</property>
|
37
|
+
<property name="rightMargin">
|
38
|
+
<number>2</number>
|
39
|
+
</property>
|
40
|
+
<property name="bottomMargin">
|
41
|
+
<number>2</number>
|
42
|
+
</property>
|
43
|
+
<item>
|
44
|
+
<widget class="BECDockArea" name="dock_area"/>
|
45
|
+
</item>
|
46
|
+
</layout>
|
47
|
+
</widget>
|
48
|
+
<widget class="QWidget" name="vscode_tab">
|
49
|
+
<attribute name="icon">
|
50
|
+
<iconset theme="QIcon::ThemeIcon::Computer"/>
|
51
|
+
</attribute>
|
52
|
+
<attribute name="title">
|
53
|
+
<string>Visual Studio Code</string>
|
54
|
+
</attribute>
|
55
|
+
<layout class="QVBoxLayout" name="verticalLayout_2">
|
56
|
+
<property name="leftMargin">
|
57
|
+
<number>2</number>
|
58
|
+
</property>
|
59
|
+
<property name="topMargin">
|
60
|
+
<number>1</number>
|
61
|
+
</property>
|
62
|
+
<property name="rightMargin">
|
63
|
+
<number>2</number>
|
64
|
+
</property>
|
65
|
+
<property name="bottomMargin">
|
66
|
+
<number>2</number>
|
67
|
+
</property>
|
68
|
+
<item>
|
69
|
+
<widget class="VSCodeEditor" name="vscode"/>
|
70
|
+
</item>
|
71
|
+
</layout>
|
72
|
+
</widget>
|
73
|
+
</widget>
|
74
|
+
</item>
|
75
|
+
</layout>
|
76
|
+
</widget>
|
77
|
+
<widget class="QMenuBar" name="menubar">
|
78
|
+
<property name="geometry">
|
79
|
+
<rect>
|
80
|
+
<x>0</x>
|
81
|
+
<y>0</y>
|
82
|
+
<width>1718</width>
|
83
|
+
<height>31</height>
|
84
|
+
</rect>
|
85
|
+
</property>
|
86
|
+
<widget class="QMenu" name="menuHelp">
|
87
|
+
<property name="title">
|
88
|
+
<string>Help</string>
|
89
|
+
</property>
|
90
|
+
<addaction name="action_BEC_docs"/>
|
91
|
+
<addaction name="action_BEC_widgets_docs"/>
|
92
|
+
<addaction name="action_bug_report"/>
|
93
|
+
</widget>
|
94
|
+
<widget class="QMenu" name="menuTheme">
|
95
|
+
<property name="title">
|
96
|
+
<string>Theme</string>
|
97
|
+
</property>
|
98
|
+
<addaction name="action_light"/>
|
99
|
+
<addaction name="action_dark"/>
|
100
|
+
</widget>
|
101
|
+
<addaction name="menuTheme"/>
|
102
|
+
<addaction name="menuHelp"/>
|
103
|
+
</widget>
|
104
|
+
<widget class="QStatusBar" name="statusbar"/>
|
105
|
+
<widget class="QDockWidget" name="dock_scan_control">
|
106
|
+
<property name="windowTitle">
|
107
|
+
<string>Scan Control</string>
|
108
|
+
</property>
|
109
|
+
<attribute name="dockWidgetArea">
|
110
|
+
<number>2</number>
|
111
|
+
</attribute>
|
112
|
+
<widget class="QWidget" name="dockWidgetContents_2">
|
113
|
+
<layout class="QVBoxLayout" name="verticalLayout_4">
|
114
|
+
<item>
|
115
|
+
<widget class="ScanControl" name="scan_control"/>
|
116
|
+
</item>
|
117
|
+
</layout>
|
118
|
+
</widget>
|
119
|
+
</widget>
|
120
|
+
<widget class="QDockWidget" name="dock_status_2">
|
121
|
+
<property name="windowTitle">
|
122
|
+
<string>BEC Service Status</string>
|
123
|
+
</property>
|
124
|
+
<attribute name="dockWidgetArea">
|
125
|
+
<number>2</number>
|
126
|
+
</attribute>
|
127
|
+
<widget class="QWidget" name="dockWidgetContents_3">
|
128
|
+
<layout class="QVBoxLayout" name="verticalLayout_5">
|
129
|
+
<property name="leftMargin">
|
130
|
+
<number>0</number>
|
131
|
+
</property>
|
132
|
+
<property name="topMargin">
|
133
|
+
<number>0</number>
|
134
|
+
</property>
|
135
|
+
<property name="rightMargin">
|
136
|
+
<number>0</number>
|
137
|
+
</property>
|
138
|
+
<property name="bottomMargin">
|
139
|
+
<number>0</number>
|
140
|
+
</property>
|
141
|
+
<item>
|
142
|
+
<widget class="BECStatusBox" name="bec_status_box_2"/>
|
143
|
+
</item>
|
144
|
+
</layout>
|
145
|
+
</widget>
|
146
|
+
</widget>
|
147
|
+
<widget class="QDockWidget" name="dock_queue">
|
148
|
+
<property name="windowTitle">
|
149
|
+
<string>Scan Queue</string>
|
150
|
+
</property>
|
151
|
+
<attribute name="dockWidgetArea">
|
152
|
+
<number>2</number>
|
153
|
+
</attribute>
|
154
|
+
<widget class="QWidget" name="dockWidgetContents_4">
|
155
|
+
<layout class="QVBoxLayout" name="verticalLayout_6">
|
156
|
+
<property name="leftMargin">
|
157
|
+
<number>0</number>
|
158
|
+
</property>
|
159
|
+
<property name="topMargin">
|
160
|
+
<number>0</number>
|
161
|
+
</property>
|
162
|
+
<property name="rightMargin">
|
163
|
+
<number>0</number>
|
164
|
+
</property>
|
165
|
+
<property name="bottomMargin">
|
166
|
+
<number>0</number>
|
167
|
+
</property>
|
168
|
+
<item>
|
169
|
+
<widget class="BECQueue" name="bec_queue">
|
170
|
+
<row/>
|
171
|
+
<column/>
|
172
|
+
<column/>
|
173
|
+
<column/>
|
174
|
+
<item row="0" column="0"/>
|
175
|
+
<item row="0" column="1"/>
|
176
|
+
<item row="0" column="2"/>
|
177
|
+
</widget>
|
178
|
+
</item>
|
179
|
+
</layout>
|
180
|
+
</widget>
|
181
|
+
</widget>
|
182
|
+
<action name="action_BEC_docs">
|
183
|
+
<property name="icon">
|
184
|
+
<iconset theme="QIcon::ThemeIcon::DialogQuestion"/>
|
185
|
+
</property>
|
186
|
+
<property name="text">
|
187
|
+
<string>BEC Docs</string>
|
188
|
+
</property>
|
189
|
+
</action>
|
190
|
+
<action name="action_BEC_widgets_docs">
|
191
|
+
<property name="icon">
|
192
|
+
<iconset theme="QIcon::ThemeIcon::DialogQuestion"/>
|
193
|
+
</property>
|
194
|
+
<property name="text">
|
195
|
+
<string>BEC Widgets Docs</string>
|
196
|
+
</property>
|
197
|
+
</action>
|
198
|
+
<action name="action_bug_report">
|
199
|
+
<property name="icon">
|
200
|
+
<iconset theme="QIcon::ThemeIcon::DialogError"/>
|
201
|
+
</property>
|
202
|
+
<property name="text">
|
203
|
+
<string>Bug Report</string>
|
204
|
+
</property>
|
205
|
+
</action>
|
206
|
+
<action name="action_light">
|
207
|
+
<property name="checkable">
|
208
|
+
<bool>true</bool>
|
209
|
+
</property>
|
210
|
+
<property name="text">
|
211
|
+
<string>Light</string>
|
212
|
+
</property>
|
213
|
+
</action>
|
214
|
+
<action name="action_dark">
|
215
|
+
<property name="checkable">
|
216
|
+
<bool>true</bool>
|
217
|
+
</property>
|
218
|
+
<property name="text">
|
219
|
+
<string>Dark</string>
|
220
|
+
</property>
|
221
|
+
</action>
|
222
|
+
</widget>
|
223
|
+
<customwidgets>
|
224
|
+
<customwidget>
|
225
|
+
<class>WebsiteWidget</class>
|
226
|
+
<extends>QWebEngineView</extends>
|
227
|
+
<header>website_widget</header>
|
228
|
+
</customwidget>
|
229
|
+
<customwidget>
|
230
|
+
<class>BECQueue</class>
|
231
|
+
<extends>QTableWidget</extends>
|
232
|
+
<header>bec_queue</header>
|
233
|
+
</customwidget>
|
234
|
+
<customwidget>
|
235
|
+
<class>ScanControl</class>
|
236
|
+
<extends>QWidget</extends>
|
237
|
+
<header>scan_control</header>
|
238
|
+
</customwidget>
|
239
|
+
<customwidget>
|
240
|
+
<class>VSCodeEditor</class>
|
241
|
+
<extends>WebsiteWidget</extends>
|
242
|
+
<header>vs_code_editor</header>
|
243
|
+
</customwidget>
|
244
|
+
<customwidget>
|
245
|
+
<class>BECStatusBox</class>
|
246
|
+
<extends>QWidget</extends>
|
247
|
+
<header>bec_status_box</header>
|
248
|
+
</customwidget>
|
249
|
+
<customwidget>
|
250
|
+
<class>BECDockArea</class>
|
251
|
+
<extends>QWidget</extends>
|
252
|
+
<header>dock_area</header>
|
253
|
+
</customwidget>
|
254
|
+
<customwidget>
|
255
|
+
<class>QWebEngineView</class>
|
256
|
+
<extends></extends>
|
257
|
+
<header location="global">QtWebEngineWidgets/QWebEngineView</header>
|
258
|
+
</customwidget>
|
259
|
+
</customwidgets>
|
260
|
+
<resources/>
|
261
|
+
<connections/>
|
262
|
+
</ui>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
import webbrowser
|
2
|
+
|
3
|
+
|
4
|
+
class BECWebLinksMixin:
|
5
|
+
@staticmethod
|
6
|
+
def open_bec_docs():
|
7
|
+
webbrowser.open("https://beamline-experiment-control.readthedocs.io/en/latest/")
|
8
|
+
|
9
|
+
@staticmethod
|
10
|
+
def open_bec_widgets_docs():
|
11
|
+
webbrowser.open("https://bec.readthedocs.io/projects/bec-widgets/en/latest/")
|
12
|
+
|
13
|
+
@staticmethod
|
14
|
+
def open_bec_bug_report():
|
15
|
+
webbrowser.open("https://gitlab.psi.ch/groups/bec/-/issues/")
|