bec-widgets 0.99.10__py3-none-any.whl → 0.99.12__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 +22 -16
- PKG-INFO +1 -1
- bec_widgets/assets/app_icons/BEC-General-App.png +0 -0
- bec_widgets/cli/client.py +59 -2
- bec_widgets/examples/general_app/general_app.py +1 -1
- bec_widgets/examples/jupyter_console/jupyter_console_window.py +2 -4
- bec_widgets/qt_utils/toolbar.py +25 -0
- bec_widgets/widgets/button_abort/__init__.py +0 -0
- bec_widgets/widgets/button_abort/abort_button.pyproject +1 -0
- bec_widgets/widgets/button_abort/abort_button_plugin.py +54 -0
- bec_widgets/widgets/button_abort/button_abort.py +49 -0
- bec_widgets/widgets/button_abort/register_abort_button.py +15 -0
- bec_widgets/widgets/button_reset/__init__.py +0 -0
- bec_widgets/widgets/button_reset/button_reset.py +42 -0
- bec_widgets/widgets/button_reset/register_reset_button.py +15 -0
- bec_widgets/widgets/button_reset/reset_button.pyproject +1 -0
- bec_widgets/widgets/button_reset/reset_button_plugin.py +54 -0
- bec_widgets/widgets/button_resume/__init__.py +0 -0
- bec_widgets/widgets/button_resume/button_resume.py +42 -0
- bec_widgets/widgets/button_resume/register_resume_button.py +15 -0
- bec_widgets/widgets/button_resume/resume_button.pyproject +1 -0
- bec_widgets/widgets/button_resume/resume_button_plugin.py +54 -0
- bec_widgets/widgets/positioner_box/positioner_box.py +2 -0
- bec_widgets/widgets/scan_control/scan_control.py +65 -2
- bec_widgets/widgets/stop_button/stop_button.py +10 -5
- bec_widgets/widgets/stop_button/stop_button_plugin.py +1 -1
- {bec_widgets-0.99.10.dist-info → bec_widgets-0.99.12.dist-info}/METADATA +1 -1
- {bec_widgets-0.99.10.dist-info → bec_widgets-0.99.12.dist-info}/RECORD +32 -18
- pyproject.toml +1 -1
- bec_widgets/assets/app_icons/BEC-Dark.png +0 -0
- bec_widgets/assets/app_icons/terminal_icon.png +0 -0
- {bec_widgets-0.99.10.dist-info → bec_widgets-0.99.12.dist-info}/WHEEL +0 -0
- {bec_widgets-0.99.10.dist-info → bec_widgets-0.99.12.dist-info}/entry_points.txt +0 -0
- {bec_widgets-0.99.10.dist-info → bec_widgets-0.99.12.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md
CHANGED
@@ -1,5 +1,27 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v0.99.12 (2024-08-29)
|
4
|
+
|
5
|
+
### Fix
|
6
|
+
|
7
|
+
* fix(toolbar): widget action added ([`2efd487`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2efd48736cbe04e84533f7933c552ea8274e2162))
|
8
|
+
|
9
|
+
* fix(reset_button): reset button added ([`6ed1efc`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6ed1efc6af193908f70aa37fb73157d2ca6a62f4))
|
10
|
+
|
11
|
+
* fix(abort_button): abort button added; some minor fixes ([`a568633`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a568633c3206a8c26069d140f2d9a548bf4124b0))
|
12
|
+
|
13
|
+
## v0.99.11 (2024-08-29)
|
14
|
+
|
15
|
+
### Fix
|
16
|
+
|
17
|
+
* fix(resume_button): resume button added ([`8be8295`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/8be8295b2b38f36da210ab36c5da6d0a00e330cc))
|
18
|
+
|
19
|
+
### Refactor
|
20
|
+
|
21
|
+
* refactor(icons): general app icon changed; jupyter app icon changed to material icon ([`5d73fe4`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5d73fe455a568ad40a9fadc5ce6e249d782ad20d))
|
22
|
+
|
23
|
+
* refactor: add option to select scan and hide arg bundle buttons ([`7dadab1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7dadab1f14aa41876ad39e8cdc7f7732248cc643))
|
24
|
+
|
3
25
|
## v0.99.10 (2024-08-29)
|
4
26
|
|
5
27
|
### Fix
|
@@ -128,10 +150,6 @@ If not theme is set, the init of the BECWidget base class sets the default theme
|
|
128
150
|
|
129
151
|
## v0.98.0 (2024-08-25)
|
130
152
|
|
131
|
-
### Feature
|
132
|
-
|
133
|
-
* feat(themes): added set_theme method ([`2b4449a`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2b4449afebdda0a97f95712a1353cf40ec55c283))
|
134
|
-
|
135
153
|
### Fix
|
136
154
|
|
137
155
|
* fix(toolbar): removed hardcoded color values ([`afdf4e8`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/afdf4e8782a22566932180224fa1c924d24c810f))
|
@@ -142,18 +160,6 @@ If not theme is set, the init of the BECWidget base class sets the default theme
|
|
142
160
|
|
143
161
|
* fix: fix color palette if qtheme was not called ([`3f3b207`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3f3b207295ebd406ebaeecee465c774965161b8b))
|
144
162
|
|
145
|
-
* fix(figure): removed theme from figure init ([`e42b84c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e42b84c63650297d67feffccc02a2c2ba111ca79))
|
146
|
-
|
147
|
-
* fix: use globally set theme instead of the internal bec widgets theme ([`77c5aa7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/77c5aa741cf1f5b969a42aa878aa2965176dbf41))
|
148
|
-
|
149
|
-
* fix(waveform): fixed icon appearance ([`36ad464`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/36ad4641594b67c9b789515c28f7db78a12757ee))
|
150
|
-
|
151
163
|
### Refactor
|
152
164
|
|
153
165
|
* refactor(waveform): use set theme for demo ([`44cfda1`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/44cfda1c07306669c9a4e09706d95e6b91dee370))
|
154
|
-
|
155
|
-
## v0.97.0 (2024-08-23)
|
156
|
-
|
157
|
-
### Fix
|
158
|
-
|
159
|
-
* fix(toolbar icon): fixed material icon toolbar for theme changes ([`3ecbd60`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/3ecbd60627994417c9175364e5909710dbcdceb2))
|
PKG-INFO
CHANGED
Binary file
|
bec_widgets/cli/client.py
CHANGED
@@ -13,6 +13,7 @@ class Widgets(str, enum.Enum):
|
|
13
13
|
Enum for the available widgets.
|
14
14
|
"""
|
15
15
|
|
16
|
+
AbortButton = "AbortButton"
|
16
17
|
BECDock = "BECDock"
|
17
18
|
BECDockArea = "BECDockArea"
|
18
19
|
BECFigure = "BECFigure"
|
@@ -27,6 +28,8 @@ class Widgets(str, enum.Enum):
|
|
27
28
|
DeviceLineEdit = "DeviceLineEdit"
|
28
29
|
PositionerBox = "PositionerBox"
|
29
30
|
PositionerControlLine = "PositionerControlLine"
|
31
|
+
ResetButton = "ResetButton"
|
32
|
+
ResumeButton = "ResumeButton"
|
30
33
|
RingProgressBar = "RingProgressBar"
|
31
34
|
ScanControl = "ScanControl"
|
32
35
|
StopButton = "StopButton"
|
@@ -35,6 +38,24 @@ class Widgets(str, enum.Enum):
|
|
35
38
|
WebsiteWidget = "WebsiteWidget"
|
36
39
|
|
37
40
|
|
41
|
+
class AbortButton(RPCBase):
|
42
|
+
@property
|
43
|
+
@rpc_call
|
44
|
+
def _config_dict(self) -> "dict":
|
45
|
+
"""
|
46
|
+
Get the configuration of the widget.
|
47
|
+
|
48
|
+
Returns:
|
49
|
+
dict: The configuration of the widget.
|
50
|
+
"""
|
51
|
+
|
52
|
+
@rpc_call
|
53
|
+
def _get_all_rpc(self) -> "dict":
|
54
|
+
"""
|
55
|
+
Get all registered RPC objects.
|
56
|
+
"""
|
57
|
+
|
58
|
+
|
38
59
|
class BECCurve(RPCBase):
|
39
60
|
@rpc_call
|
40
61
|
def remove(self):
|
@@ -2373,7 +2394,7 @@ class DeviceLineEdit(RPCBase):
|
|
2373
2394
|
|
2374
2395
|
class PositionerBox(RPCBase):
|
2375
2396
|
@rpc_call
|
2376
|
-
def set_positioner(self, positioner: str):
|
2397
|
+
def set_positioner(self, positioner: "str | Positioner"):
|
2377
2398
|
"""
|
2378
2399
|
Set the device
|
2379
2400
|
|
@@ -2384,7 +2405,7 @@ class PositionerBox(RPCBase):
|
|
2384
2405
|
|
2385
2406
|
class PositionerControlLine(RPCBase):
|
2386
2407
|
@rpc_call
|
2387
|
-
def set_positioner(self, positioner: str):
|
2408
|
+
def set_positioner(self, positioner: "str | Positioner"):
|
2388
2409
|
"""
|
2389
2410
|
Set the device
|
2390
2411
|
|
@@ -2393,6 +2414,42 @@ class PositionerControlLine(RPCBase):
|
|
2393
2414
|
"""
|
2394
2415
|
|
2395
2416
|
|
2417
|
+
class ResetButton(RPCBase):
|
2418
|
+
@property
|
2419
|
+
@rpc_call
|
2420
|
+
def _config_dict(self) -> "dict":
|
2421
|
+
"""
|
2422
|
+
Get the configuration of the widget.
|
2423
|
+
|
2424
|
+
Returns:
|
2425
|
+
dict: The configuration of the widget.
|
2426
|
+
"""
|
2427
|
+
|
2428
|
+
@rpc_call
|
2429
|
+
def _get_all_rpc(self) -> "dict":
|
2430
|
+
"""
|
2431
|
+
Get all registered RPC objects.
|
2432
|
+
"""
|
2433
|
+
|
2434
|
+
|
2435
|
+
class ResumeButton(RPCBase):
|
2436
|
+
@property
|
2437
|
+
@rpc_call
|
2438
|
+
def _config_dict(self) -> "dict":
|
2439
|
+
"""
|
2440
|
+
Get the configuration of the widget.
|
2441
|
+
|
2442
|
+
Returns:
|
2443
|
+
dict: The configuration of the widget.
|
2444
|
+
"""
|
2445
|
+
|
2446
|
+
@rpc_call
|
2447
|
+
def _get_all_rpc(self) -> "dict":
|
2448
|
+
"""
|
2449
|
+
Get all registered RPC objects.
|
2450
|
+
"""
|
2451
|
+
|
2452
|
+
|
2396
2453
|
class Ring(RPCBase):
|
2397
2454
|
@rpc_call
|
2398
2455
|
def _get_all_rpc(self) -> "dict":
|
@@ -80,7 +80,7 @@ def main(): # pragma: no cover
|
|
80
80
|
app = QApplication(sys.argv)
|
81
81
|
icon = QIcon()
|
82
82
|
icon.addFile(
|
83
|
-
os.path.join(MODULE_PATH, "assets", "app_icons", "BEC-
|
83
|
+
os.path.join(MODULE_PATH, "assets", "app_icons", "BEC-General-App.png"), size=QSize(48, 48)
|
84
84
|
)
|
85
85
|
app.setWindowIcon(icon)
|
86
86
|
main_window = BECGeneralApp()
|
@@ -2,6 +2,7 @@ import os
|
|
2
2
|
|
3
3
|
import numpy as np
|
4
4
|
import pyqtgraph as pg
|
5
|
+
from bec_qthemes import material_icon
|
5
6
|
from qtpy.QtCore import QSize
|
6
7
|
from qtpy.QtGui import QIcon
|
7
8
|
from qtpy.QtWidgets import (
|
@@ -200,10 +201,7 @@ if __name__ == "__main__": # pragma: no cover
|
|
200
201
|
app.setApplicationName("Jupyter Console")
|
201
202
|
app.setApplicationDisplayName("Jupyter Console")
|
202
203
|
apply_theme("dark")
|
203
|
-
icon =
|
204
|
-
icon.addFile(
|
205
|
-
os.path.join(module_path, "assets", "app_icons", "terminal_icon.png"), size=QSize(48, 48)
|
206
|
-
)
|
204
|
+
icon = material_icon("terminal", color="#434343", filled=True)
|
207
205
|
app.setWindowIcon(icon)
|
208
206
|
|
209
207
|
bec_dispatcher = BECDispatcher()
|
bec_widgets/qt_utils/toolbar.py
CHANGED
@@ -142,6 +142,31 @@ class DeviceSelectionAction(ToolBarAction):
|
|
142
142
|
self.device_combobox.setStyleSheet(f"QComboBox {{ background-color: {color}; }}")
|
143
143
|
|
144
144
|
|
145
|
+
class WidgetAction(ToolBarAction):
|
146
|
+
"""
|
147
|
+
Action for adding any widget to the toolbar.
|
148
|
+
|
149
|
+
Args:
|
150
|
+
label (str|None): The label for the widget.
|
151
|
+
widget (QWidget): The widget to be added to the toolbar.
|
152
|
+
|
153
|
+
"""
|
154
|
+
|
155
|
+
def __init__(self, label: str | None = None, widget: QWidget = None):
|
156
|
+
super().__init__()
|
157
|
+
self.label = label
|
158
|
+
self.widget = widget
|
159
|
+
|
160
|
+
def add_to_toolbar(self, toolbar, target):
|
161
|
+
widget = QWidget()
|
162
|
+
layout = QHBoxLayout(widget)
|
163
|
+
if self.label is not None:
|
164
|
+
label = QLabel(f"{self.label}")
|
165
|
+
layout.addWidget(label)
|
166
|
+
layout.addWidget(self.widget)
|
167
|
+
toolbar.addWidget(widget)
|
168
|
+
|
169
|
+
|
145
170
|
class ExpandableMenuAction(ToolBarAction):
|
146
171
|
"""
|
147
172
|
Action for an expandable menu in the toolbar.
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
{'files': ['button_abort.py']}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Copyright (C) 2022 The Qt Company Ltd.
|
2
|
+
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
3
|
+
|
4
|
+
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
5
|
+
|
6
|
+
from bec_widgets.utils.bec_designer import designer_material_icon
|
7
|
+
from bec_widgets.widgets.button_abort.button_abort import AbortButton
|
8
|
+
|
9
|
+
DOM_XML = """
|
10
|
+
<ui language='c++'>
|
11
|
+
<widget class='AbortButton' name='abort_button'>
|
12
|
+
</widget>
|
13
|
+
</ui>
|
14
|
+
"""
|
15
|
+
|
16
|
+
|
17
|
+
class AbortButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
18
|
+
def __init__(self):
|
19
|
+
super().__init__()
|
20
|
+
self._form_editor = None
|
21
|
+
|
22
|
+
def createWidget(self, parent):
|
23
|
+
t = AbortButton(parent)
|
24
|
+
return t
|
25
|
+
|
26
|
+
def domXml(self):
|
27
|
+
return DOM_XML
|
28
|
+
|
29
|
+
def group(self):
|
30
|
+
return "BEC Buttons"
|
31
|
+
|
32
|
+
def icon(self):
|
33
|
+
return designer_material_icon(AbortButton.ICON_NAME)
|
34
|
+
|
35
|
+
def includeFile(self):
|
36
|
+
return "abort_button"
|
37
|
+
|
38
|
+
def initialize(self, form_editor):
|
39
|
+
self._form_editor = form_editor
|
40
|
+
|
41
|
+
def isContainer(self):
|
42
|
+
return False
|
43
|
+
|
44
|
+
def isInitialized(self):
|
45
|
+
return self._form_editor is not None
|
46
|
+
|
47
|
+
def name(self):
|
48
|
+
return "AbortButton"
|
49
|
+
|
50
|
+
def toolTip(self):
|
51
|
+
return "A button that abort the scan."
|
52
|
+
|
53
|
+
def whatsThis(self):
|
54
|
+
return self.toolTip()
|
@@ -0,0 +1,49 @@
|
|
1
|
+
from bec_qthemes import material_icon
|
2
|
+
from qtpy.QtCore import Qt
|
3
|
+
from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
|
4
|
+
|
5
|
+
from bec_widgets.qt_utils.error_popups import SafeSlot
|
6
|
+
from bec_widgets.utils.bec_widget import BECWidget
|
7
|
+
|
8
|
+
|
9
|
+
class AbortButton(BECWidget, QWidget):
|
10
|
+
"""A button that abort the scan."""
|
11
|
+
|
12
|
+
ICON_NAME = "cancel"
|
13
|
+
|
14
|
+
def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):
|
15
|
+
super().__init__(client=client, config=config, gui_id=gui_id)
|
16
|
+
QWidget.__init__(self, parent=parent)
|
17
|
+
|
18
|
+
self.get_bec_shortcuts()
|
19
|
+
|
20
|
+
self.layout = QHBoxLayout(self)
|
21
|
+
self.layout.setSpacing(0)
|
22
|
+
self.layout.setContentsMargins(0, 0, 0, 0)
|
23
|
+
self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
|
24
|
+
|
25
|
+
if toolbar:
|
26
|
+
icon = material_icon("cancel", color="#666666", filled=True)
|
27
|
+
self.button = QToolButton(icon=icon)
|
28
|
+
self.button.triggered.connect(self.abort_scan)
|
29
|
+
else:
|
30
|
+
self.button = QPushButton()
|
31
|
+
self.button.setText("Abort")
|
32
|
+
self.button.setStyleSheet(
|
33
|
+
"background-color: #666666; color: white; font-weight: bold; font-size: 12px;"
|
34
|
+
)
|
35
|
+
self.button.clicked.connect(self.abort_scan)
|
36
|
+
|
37
|
+
self.layout.addWidget(self.button)
|
38
|
+
|
39
|
+
@SafeSlot()
|
40
|
+
def abort_scan(
|
41
|
+
self,
|
42
|
+
): # , scan_id: str | None = None): #FIXME scan_id will be added when combining with Queue widget
|
43
|
+
"""
|
44
|
+
Abort the scan.
|
45
|
+
|
46
|
+
Args:
|
47
|
+
scan_id(str|None): The scan id to abort. If None, the current scan will be aborted.
|
48
|
+
"""
|
49
|
+
self.queue.request_scan_abortion()
|
@@ -0,0 +1,15 @@
|
|
1
|
+
def main(): # pragma: no cover
|
2
|
+
from qtpy import PYSIDE6
|
3
|
+
|
4
|
+
if not PYSIDE6:
|
5
|
+
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
|
6
|
+
return
|
7
|
+
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
8
|
+
|
9
|
+
from bec_widgets.widgets.button_abort.abort_button_plugin import AbortButtonPlugin
|
10
|
+
|
11
|
+
QPyDesignerCustomWidgetCollection.addCustomWidget(AbortButtonPlugin())
|
12
|
+
|
13
|
+
|
14
|
+
if __name__ == "__main__": # pragma: no cover
|
15
|
+
main()
|
File without changes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from bec_qthemes import material_icon
|
2
|
+
from qtpy.QtCore import Qt
|
3
|
+
from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
|
4
|
+
|
5
|
+
from bec_widgets.qt_utils.error_popups import SafeSlot
|
6
|
+
from bec_widgets.utils.bec_widget import BECWidget
|
7
|
+
|
8
|
+
|
9
|
+
class ResetButton(BECWidget, QWidget):
|
10
|
+
"""A button that reset the scan queue."""
|
11
|
+
|
12
|
+
ICON_NAME = "restart_alt"
|
13
|
+
|
14
|
+
def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):
|
15
|
+
super().__init__(client=client, config=config, gui_id=gui_id)
|
16
|
+
QWidget.__init__(self, parent=parent)
|
17
|
+
|
18
|
+
self.get_bec_shortcuts()
|
19
|
+
|
20
|
+
self.layout = QHBoxLayout(self)
|
21
|
+
self.layout.setSpacing(0)
|
22
|
+
self.layout.setContentsMargins(0, 0, 0, 0)
|
23
|
+
self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
|
24
|
+
|
25
|
+
if toolbar:
|
26
|
+
icon = material_icon("restart_alt", color="#F19E39", filled=True)
|
27
|
+
self.button = QToolButton(icon=icon)
|
28
|
+
self.button.triggered.connect(self.reset_queue)
|
29
|
+
else:
|
30
|
+
self.button = QPushButton()
|
31
|
+
self.button.setText("Reset Queue")
|
32
|
+
self.button.setStyleSheet(
|
33
|
+
"background-color: #F19E39; color: white; font-weight: bold; font-size: 12px;"
|
34
|
+
)
|
35
|
+
self.button.clicked.connect(self.reset_queue)
|
36
|
+
|
37
|
+
self.layout.addWidget(self.button)
|
38
|
+
|
39
|
+
@SafeSlot()
|
40
|
+
def reset_queue(self):
|
41
|
+
"""Stop the scan."""
|
42
|
+
self.queue.request_queue_reset()
|
@@ -0,0 +1,15 @@
|
|
1
|
+
def main(): # pragma: no cover
|
2
|
+
from qtpy import PYSIDE6
|
3
|
+
|
4
|
+
if not PYSIDE6:
|
5
|
+
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
|
6
|
+
return
|
7
|
+
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
8
|
+
|
9
|
+
from bec_widgets.widgets.button_reset.reset_button_plugin import ResetButtonPlugin
|
10
|
+
|
11
|
+
QPyDesignerCustomWidgetCollection.addCustomWidget(ResetButtonPlugin())
|
12
|
+
|
13
|
+
|
14
|
+
if __name__ == "__main__": # pragma: no cover
|
15
|
+
main()
|
@@ -0,0 +1 @@
|
|
1
|
+
{'files': ['button_reset.py']}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Copyright (C) 2022 The Qt Company Ltd.
|
2
|
+
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
3
|
+
|
4
|
+
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
5
|
+
|
6
|
+
from bec_widgets.utils.bec_designer import designer_material_icon
|
7
|
+
from bec_widgets.widgets.button_reset.button_reset import ResetButton
|
8
|
+
|
9
|
+
DOM_XML = """
|
10
|
+
<ui language='c++'>
|
11
|
+
<widget class='ResetButton' name='reset_button'>
|
12
|
+
</widget>
|
13
|
+
</ui>
|
14
|
+
"""
|
15
|
+
|
16
|
+
|
17
|
+
class ResetButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
18
|
+
def __init__(self):
|
19
|
+
super().__init__()
|
20
|
+
self._form_editor = None
|
21
|
+
|
22
|
+
def createWidget(self, parent):
|
23
|
+
t = ResetButton(parent)
|
24
|
+
return t
|
25
|
+
|
26
|
+
def domXml(self):
|
27
|
+
return DOM_XML
|
28
|
+
|
29
|
+
def group(self):
|
30
|
+
return "BEC Buttons"
|
31
|
+
|
32
|
+
def icon(self):
|
33
|
+
return designer_material_icon(ResetButton.ICON_NAME)
|
34
|
+
|
35
|
+
def includeFile(self):
|
36
|
+
return "reset_button"
|
37
|
+
|
38
|
+
def initialize(self, form_editor):
|
39
|
+
self._form_editor = form_editor
|
40
|
+
|
41
|
+
def isContainer(self):
|
42
|
+
return False
|
43
|
+
|
44
|
+
def isInitialized(self):
|
45
|
+
return self._form_editor is not None
|
46
|
+
|
47
|
+
def name(self):
|
48
|
+
return "ResetButton"
|
49
|
+
|
50
|
+
def toolTip(self):
|
51
|
+
return "A button that reset the scan queue."
|
52
|
+
|
53
|
+
def whatsThis(self):
|
54
|
+
return self.toolTip()
|
File without changes
|
@@ -0,0 +1,42 @@
|
|
1
|
+
from bec_qthemes import material_icon
|
2
|
+
from qtpy.QtCore import Qt
|
3
|
+
from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
|
4
|
+
|
5
|
+
from bec_widgets.qt_utils.error_popups import SafeSlot
|
6
|
+
from bec_widgets.utils.bec_widget import BECWidget
|
7
|
+
|
8
|
+
|
9
|
+
class ResumeButton(BECWidget, QWidget):
|
10
|
+
"""A button that continue scan queue."""
|
11
|
+
|
12
|
+
ICON_NAME = "resume"
|
13
|
+
|
14
|
+
def __init__(self, parent=None, client=None, config=None, gui_id=None, toolbar=False):
|
15
|
+
super().__init__(client=client, config=config, gui_id=gui_id)
|
16
|
+
QWidget.__init__(self, parent=parent)
|
17
|
+
|
18
|
+
self.get_bec_shortcuts()
|
19
|
+
|
20
|
+
self.layout = QHBoxLayout(self)
|
21
|
+
self.layout.setSpacing(0)
|
22
|
+
self.layout.setContentsMargins(0, 0, 0, 0)
|
23
|
+
self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
|
24
|
+
|
25
|
+
if toolbar:
|
26
|
+
icon = material_icon("resume", color="#2793e8", filled=True)
|
27
|
+
self.button = QToolButton(icon=icon)
|
28
|
+
self.button.triggered.connect(self.continue_scan)
|
29
|
+
else:
|
30
|
+
self.button = QPushButton()
|
31
|
+
self.button.setText("Resume")
|
32
|
+
self.button.setStyleSheet(
|
33
|
+
"background-color: #2793e8; color: white; font-weight: bold; font-size: 12px;"
|
34
|
+
)
|
35
|
+
self.button.clicked.connect(self.continue_scan)
|
36
|
+
|
37
|
+
self.layout.addWidget(self.button)
|
38
|
+
|
39
|
+
@SafeSlot()
|
40
|
+
def continue_scan(self):
|
41
|
+
"""Stop the scan."""
|
42
|
+
self.queue.request_scan_continuation()
|
@@ -0,0 +1,15 @@
|
|
1
|
+
def main(): # pragma: no cover
|
2
|
+
from qtpy import PYSIDE6
|
3
|
+
|
4
|
+
if not PYSIDE6:
|
5
|
+
print("PYSIDE6 is not available in the environment. Cannot patch designer.")
|
6
|
+
return
|
7
|
+
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
8
|
+
|
9
|
+
from bec_widgets.widgets.button_resume.resume_button_plugin import ResumeButtonPlugin
|
10
|
+
|
11
|
+
QPyDesignerCustomWidgetCollection.addCustomWidget(ResumeButtonPlugin())
|
12
|
+
|
13
|
+
|
14
|
+
if __name__ == "__main__": # pragma: no cover
|
15
|
+
main()
|
@@ -0,0 +1 @@
|
|
1
|
+
{'files': ['button_resume.py']}
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Copyright (C) 2022 The Qt Company Ltd.
|
2
|
+
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
3
|
+
|
4
|
+
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
5
|
+
|
6
|
+
from bec_widgets.utils.bec_designer import designer_material_icon
|
7
|
+
from bec_widgets.widgets.button_resume.button_resume import ResumeButton
|
8
|
+
|
9
|
+
DOM_XML = """
|
10
|
+
<ui language='c++'>
|
11
|
+
<widget class='ResumeButton' name='resume_button'>
|
12
|
+
</widget>
|
13
|
+
</ui>
|
14
|
+
"""
|
15
|
+
|
16
|
+
|
17
|
+
class ResumeButtonPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
18
|
+
def __init__(self):
|
19
|
+
super().__init__()
|
20
|
+
self._form_editor = None
|
21
|
+
|
22
|
+
def createWidget(self, parent):
|
23
|
+
t = ResumeButton(parent)
|
24
|
+
return t
|
25
|
+
|
26
|
+
def domXml(self):
|
27
|
+
return DOM_XML
|
28
|
+
|
29
|
+
def group(self):
|
30
|
+
return "BEC Buttons"
|
31
|
+
|
32
|
+
def icon(self):
|
33
|
+
return designer_material_icon(ResumeButton.ICON_NAME)
|
34
|
+
|
35
|
+
def includeFile(self):
|
36
|
+
return "resume_button"
|
37
|
+
|
38
|
+
def initialize(self, form_editor):
|
39
|
+
self._form_editor = form_editor
|
40
|
+
|
41
|
+
def isContainer(self):
|
42
|
+
return False
|
43
|
+
|
44
|
+
def isInitialized(self):
|
45
|
+
return self._form_editor is not None
|
46
|
+
|
47
|
+
def name(self):
|
48
|
+
return "ResumeButton"
|
49
|
+
|
50
|
+
def toolTip(self):
|
51
|
+
return "A button that continue scan queue."
|
52
|
+
|
53
|
+
def whatsThis(self):
|
54
|
+
return self.toolTip()
|
@@ -126,12 +126,43 @@ class ScanControl(BECWidget, QWidget):
|
|
126
126
|
selected_scan_name = self.comboBox_scan_selection.currentText()
|
127
127
|
self.scan_selected.emit(selected_scan_name)
|
128
128
|
|
129
|
+
@Property(str)
|
130
|
+
def current_scan(self):
|
131
|
+
"""Returns the scan name for the currently selected scan."""
|
132
|
+
return self.comboBox_scan_selection.currentText()
|
133
|
+
|
134
|
+
@current_scan.setter
|
135
|
+
def current_scan(self, scan_name: str):
|
136
|
+
"""Sets the current scan to the given scan name.
|
137
|
+
|
138
|
+
Args:
|
139
|
+
scan_name(str): Name of the scan to set as current.
|
140
|
+
"""
|
141
|
+
if scan_name not in self.available_scans:
|
142
|
+
return
|
143
|
+
self.comboBox_scan_selection.setCurrentText(scan_name)
|
144
|
+
|
145
|
+
@Slot(str)
|
146
|
+
def set_current_scan(self, scan_name: str):
|
147
|
+
"""Slot for setting the current scan to the given scan name.
|
148
|
+
|
149
|
+
Args:
|
150
|
+
scan_name(str): Name of the scan to set as current.
|
151
|
+
"""
|
152
|
+
self.current_scan = scan_name
|
153
|
+
|
129
154
|
@Property(bool)
|
130
155
|
def hide_scan_control_buttons(self):
|
156
|
+
"""Property to hide the scan control buttons."""
|
131
157
|
return not self.button_run_scan.isVisible()
|
132
158
|
|
133
159
|
@hide_scan_control_buttons.setter
|
134
160
|
def hide_scan_control_buttons(self, hide: bool):
|
161
|
+
"""Setter for the hide_scan_control_buttons property.
|
162
|
+
|
163
|
+
Args:
|
164
|
+
hide(bool): Hide or show the scan control buttons.
|
165
|
+
"""
|
135
166
|
self.show_scan_control_buttons(not hide)
|
136
167
|
|
137
168
|
@Slot(bool)
|
@@ -145,10 +176,16 @@ class ScanControl(BECWidget, QWidget):
|
|
145
176
|
|
146
177
|
@Property(bool)
|
147
178
|
def hide_scan_selection_combobox(self):
|
179
|
+
"""Property to hide the scan selection combobox."""
|
148
180
|
return not self.comboBox_scan_selection.isVisible()
|
149
181
|
|
150
182
|
@hide_scan_selection_combobox.setter
|
151
183
|
def hide_scan_selection_combobox(self, hide: bool):
|
184
|
+
"""Setter for the hide_scan_selection_combobox property.
|
185
|
+
|
186
|
+
Args:
|
187
|
+
hide(bool): Hide or show the scan selection combobox.
|
188
|
+
"""
|
152
189
|
self.show_scan_selection_combobox(not hide)
|
153
190
|
|
154
191
|
@Slot(bool)
|
@@ -176,8 +213,7 @@ class ScanControl(BECWidget, QWidget):
|
|
176
213
|
|
177
214
|
show_bundle_buttons = bool(self.arg_group["arg_inputs"])
|
178
215
|
|
179
|
-
self.
|
180
|
-
self.button_remove_bundle.setVisible(show_bundle_buttons)
|
216
|
+
self._show_bundle_buttons(show_bundle_buttons)
|
181
217
|
|
182
218
|
if show_bundle_buttons:
|
183
219
|
self.add_arg_group(self.arg_group)
|
@@ -187,6 +223,29 @@ class ScanControl(BECWidget, QWidget):
|
|
187
223
|
self.update()
|
188
224
|
self.adjustSize()
|
189
225
|
|
226
|
+
def _show_bundle_buttons(self, show: bool):
|
227
|
+
"""Shows or hides the bundle buttons based on the show argument.
|
228
|
+
|
229
|
+
Args:
|
230
|
+
show(bool): Show or hide the bundle buttons.
|
231
|
+
"""
|
232
|
+
self.button_add_bundle.setVisible(show)
|
233
|
+
self.button_remove_bundle.setVisible(show)
|
234
|
+
|
235
|
+
@Property(bool)
|
236
|
+
def hide_bundle_buttons(self):
|
237
|
+
"""Property to hide the bundle buttons."""
|
238
|
+
return not self.button_add_bundle.isVisible()
|
239
|
+
|
240
|
+
@hide_bundle_buttons.setter
|
241
|
+
def hide_bundle_buttons(self, hide: bool):
|
242
|
+
"""Setter for the hide_bundle_buttons property.
|
243
|
+
|
244
|
+
Args:
|
245
|
+
hide(bool): Hide or show the bundle buttons.
|
246
|
+
"""
|
247
|
+
self._show_bundle_buttons(not hide)
|
248
|
+
|
190
249
|
def add_kwargs_boxes(self, groups: list):
|
191
250
|
"""
|
192
251
|
Adds the given gui_groups to the scan control layout.
|
@@ -212,10 +271,12 @@ class ScanControl(BECWidget, QWidget):
|
|
212
271
|
|
213
272
|
@Slot()
|
214
273
|
def add_arg_bundle(self):
|
274
|
+
"""Adds a new argument bundle to the scan control layout."""
|
215
275
|
self.arg_box.add_widget_bundle()
|
216
276
|
|
217
277
|
@Slot()
|
218
278
|
def remove_arg_bundle(self):
|
279
|
+
"""Removes the last argument bundle from the scan control layout."""
|
219
280
|
self.arg_box.remove_widget_bundle()
|
220
281
|
|
221
282
|
def reset_layout(self):
|
@@ -235,6 +296,7 @@ class ScanControl(BECWidget, QWidget):
|
|
235
296
|
|
236
297
|
@Slot()
|
237
298
|
def run_scan(self):
|
299
|
+
"""Starts the selected scan with the given parameters."""
|
238
300
|
self.scan_started.emit()
|
239
301
|
args = []
|
240
302
|
kwargs = {}
|
@@ -248,6 +310,7 @@ class ScanControl(BECWidget, QWidget):
|
|
248
310
|
scan_function(*args, **kwargs)
|
249
311
|
|
250
312
|
def cleanup(self):
|
313
|
+
"""Cleanup the scan control widget."""
|
251
314
|
self.button_stop_scan.cleanup()
|
252
315
|
if self.arg_box:
|
253
316
|
for widget in self.arg_box.widgets:
|
@@ -23,9 +23,7 @@ class StopButton(BECWidget, QWidget):
|
|
23
23
|
self.layout.setAlignment(Qt.AlignmentFlag.AlignVCenter)
|
24
24
|
|
25
25
|
if toolbar:
|
26
|
-
icon = material_icon(
|
27
|
-
"stop", size=(20, 20), color="#cc181e", filled=True, convert_to_pixmap=False
|
28
|
-
)
|
26
|
+
icon = material_icon("stop", color="#cc181e", filled=True)
|
29
27
|
self.button = QToolButton(icon=icon)
|
30
28
|
self.button.triggered.connect(self.stop_scan)
|
31
29
|
else:
|
@@ -39,6 +37,13 @@ class StopButton(BECWidget, QWidget):
|
|
39
37
|
self.layout.addWidget(self.button)
|
40
38
|
|
41
39
|
@SafeSlot()
|
42
|
-
def stop_scan(
|
43
|
-
|
40
|
+
def stop_scan(
|
41
|
+
self,
|
42
|
+
): # , scan_id: str | None = None): #FIXME scan_id will be added when combining with Queue widget
|
43
|
+
"""
|
44
|
+
Stop the scan.
|
45
|
+
|
46
|
+
Args:
|
47
|
+
scan_id(str|None): The scan id to stop. If None, the current scan will be stopped.
|
48
|
+
"""
|
44
49
|
self.queue.request_scan_halt()
|
@@ -2,20 +2,19 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=HE_stq5wl-0wE5ZetfEmaaDbectk20jX7Z2cxwsBegg,8348
|
3
3
|
.pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256=
|
5
|
+
CHANGELOG.md,sha256=6c9TNioj6VAiLpKefbh4exckHJCVVPUQqjFqFq0F9Q0,7069
|
6
6
|
LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=meqZoR4X-i0IEv8GXcSeCQBGzHpF6CdYR9oCul-5syA,1334
|
8
8
|
README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=8epLbMmPD9IdOXkD8j_T6lAGr8Lkf_QX-6Nz1gUKzX0,2544
|
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
|
13
13
|
.gitlab/issue_templates/feature_request_template.md,sha256=vjxCnmj53Mp4FPzCrNxhkO-8StRQUZ36PlXu4K8VGaI,1543
|
14
14
|
.gitlab/merge_request_templates/default.md,sha256=tfyFA0hRCsIunbLGSlGbxWBQFeB3USpsA3H7IvwQ5UY,715
|
15
15
|
bec_widgets/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
16
|
-
bec_widgets/assets/app_icons/BEC-
|
16
|
+
bec_widgets/assets/app_icons/BEC-General-App.png,sha256=hc2ktly53DZAbl_rE3cb-vdRa5gtdCmBEjfwm2y5P4g,447581
|
17
17
|
bec_widgets/assets/app_icons/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
|
18
|
-
bec_widgets/assets/app_icons/terminal_icon.png,sha256=bJl7Tft4Fi2uxvuXI8o14uMHnI9eAWKSU2uftXCH9ws,3889
|
19
18
|
bec_widgets/assets/status_icons/error.svg,sha256=U_-8qDHAeCH8Z9sUXoU5zSPf0RyVx-CAWK6h2gH99C4,718
|
20
19
|
bec_widgets/assets/status_icons/not_connected.svg,sha256=wuNdFzNHuZrd_pguRi-mUw3l6uRSkb37yGFJ6kKyMQo,721
|
21
20
|
bec_widgets/assets/status_icons/refresh.svg,sha256=Em_236ARgCdkSof-HU5EYGwv2hXPhOH0NYj2mKaIrwI,559
|
@@ -23,7 +22,7 @@ bec_widgets/assets/status_icons/running.svg,sha256=nlc6rKh_f-uOxQSk0BkBNyWnPAJU5
|
|
23
22
|
bec_widgets/assets/status_icons/warning.svg,sha256=CNx88p9kbDG51s9ztKf-cfYan4JdDBbk3-IFKfOOFlI,364
|
24
23
|
bec_widgets/cli/__init__.py,sha256=d0Q6Fn44e7wFfLabDOBxpcJ1DPKWlFunGYDUBmO-4hA,22
|
25
24
|
bec_widgets/cli/auto_updates.py,sha256=DwzRChcFIWPH2kCYvp8H7dXvyYSKGYv6LwCmK2sDR2E,5676
|
26
|
-
bec_widgets/cli/client.py,sha256=
|
25
|
+
bec_widgets/cli/client.py,sha256=Go09tb7lnsDSljF-7rtWu4x8x_ooL-F4WWuu_yFaTNA,78098
|
27
26
|
bec_widgets/cli/client_utils.py,sha256=l35LtTkD7PdvVCckjMU8-y6f5a5pp1u6cFPpD-Dkvow,11713
|
28
27
|
bec_widgets/cli/generate_cli.py,sha256=Ea5px9KblUlcGg-1JbJBTIU7laGg2n8PM7Efw9WVVzM,5889
|
29
28
|
bec_widgets/cli/rpc_register.py,sha256=QxXUZu5XNg00Yf5O3UHWOXg3-f_pzKjjoZYMOa-MOJc,2216
|
@@ -31,11 +30,11 @@ bec_widgets/cli/rpc_wigdet_handler.py,sha256=6kQng2DyS6rhLJqSJ7xa0kdgSxp-35A2upc
|
|
31
30
|
bec_widgets/cli/server.py,sha256=I3gZ5xwygEOnL4ga3zOoD3jRUXNjPRop4u7a0emfejs,7921
|
32
31
|
bec_widgets/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
33
32
|
bec_widgets/examples/general_app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
34
|
-
bec_widgets/examples/general_app/general_app.py,sha256=
|
33
|
+
bec_widgets/examples/general_app/general_app.py,sha256=PoFCTuA_1yqrpgthASpYFgH7JDUZTcXAPZ5h0e3XZfc,3053
|
35
34
|
bec_widgets/examples/general_app/general_app.ui,sha256=TsejkM3Z8znnixyqxoj4SwhIIpIzTAuGAMkGXSS1aT8,10479
|
36
35
|
bec_widgets/examples/general_app/web_links.py,sha256=d5OgzgI9zb-NAC0pOGanOtJX3nZoe4x8QuQTw-_hK_8,434
|
37
36
|
bec_widgets/examples/jupyter_console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
|
-
bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=
|
37
|
+
bec_widgets/examples/jupyter_console/jupyter_console_window.py,sha256=C1GeB-RuL7Uo2IJS8DghNsPY41FJJi60EVXVJrwz3Do,6767
|
39
38
|
bec_widgets/examples/plugin_example_pyside/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
40
39
|
bec_widgets/examples/plugin_example_pyside/main.py,sha256=zDP5wO7wb3BVsQ15HOCRT1nNmCujIVRvSXZ3Txje8L0,549
|
41
40
|
bec_widgets/examples/plugin_example_pyside/registertictactoe.py,sha256=cVhBnP0qx5j9Jft-VeKvlTFE-bX58hbP45CX0f4r5pM,535
|
@@ -47,7 +46,7 @@ bec_widgets/qt_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
47
46
|
bec_widgets/qt_utils/error_popups.py,sha256=y9gKKWaafp468ioHr96nBhf02ZpEgjDc-BAVOTWh-e8,7680
|
48
47
|
bec_widgets/qt_utils/redis_message_waiter.py,sha256=fvL_QgC0cTDv_FPJdRyp5AKjf401EJU4z3r38p47ydY,1745
|
49
48
|
bec_widgets/qt_utils/settings_dialog.py,sha256=NhtzTer_xzlB2lLLrGklkI1QYLJEWQpJoZbCz4o5daI,3645
|
50
|
-
bec_widgets/qt_utils/toolbar.py,sha256=
|
49
|
+
bec_widgets/qt_utils/toolbar.py,sha256=NhpXw5An2qNefv0iQdCyDUbkanPcsQoD_8vDOGhQEOs,8494
|
51
50
|
bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
|
52
51
|
bec_widgets/utils/bec_connector.py,sha256=SivHKXVyNVqeu3kCXYEPpbleTVw8g1cW0FKq1QrQgco,9987
|
53
52
|
bec_widgets/utils/bec_designer.py,sha256=Z3MeMju-KmTz8POtm23VQfp4rvtD2sF6eIOKQkl2F7w,4729
|
@@ -84,6 +83,21 @@ bec_widgets/widgets/bec_status_box/bec_status_box.pyproject,sha256=JWtx3Csfn2h7O
|
|
84
83
|
bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py,sha256=UmsXAmeHg7FRkzirOLBPi3LwbRbG75w8LglYt4jn6Fc,1412
|
85
84
|
bec_widgets/widgets/bec_status_box/register_bec_status_box.py,sha256=EiQITnkNw7IU7hE776wAeXro97eZd9XlsB9essgCebE,481
|
86
85
|
bec_widgets/widgets/bec_status_box/status_item.py,sha256=3aNaa-e64PmkBoAWfItYAmhB1EFhWRiFLzXWWz0dS_8,5317
|
86
|
+
bec_widgets/widgets/button_abort/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
87
|
+
bec_widgets/widgets/button_abort/abort_button.pyproject,sha256=UtuaE0Lvs6uOGufhatUyJS_n2l6EBbYaGuILj_BNCLs,30
|
88
|
+
bec_widgets/widgets/button_abort/abort_button_plugin.py,sha256=3q0a4UE2O9s96Jjg6wi03CpXdQ7CnOI20ep7etEdxMo,1285
|
89
|
+
bec_widgets/widgets/button_abort/button_abort.py,sha256=TpmxyG3GP-4RWTDJ9gSLyoD8aOYGJRzLC65fpxNSJTE,1688
|
90
|
+
bec_widgets/widgets/button_abort/register_abort_button.py,sha256=IthCqJIaCR25ELRqMssSzve_7CE8G54wDlBVY0gPSNI,475
|
91
|
+
bec_widgets/widgets/button_reset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
92
|
+
bec_widgets/widgets/button_reset/button_reset.py,sha256=AnWC6i1j7yVudmX6FKGOZBNd5KKmhvl7DzDKYKxLwxg,1470
|
93
|
+
bec_widgets/widgets/button_reset/register_reset_button.py,sha256=IuCaPrqKqF9acVBL2k1St0exsb3rwQF_Y1-QciDEVjw,475
|
94
|
+
bec_widgets/widgets/button_reset/reset_button.pyproject,sha256=JC7XLsjgYzTAh6BV3KmxtT3w4ZUH91wiqIeGefnCjMk,30
|
95
|
+
bec_widgets/widgets/button_reset/reset_button_plugin.py,sha256=QW4ToNqnwh55hN6GMAId1C65vkPYRTAoPTWcXRFvWLw,1291
|
96
|
+
bec_widgets/widgets/button_resume/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
97
|
+
bec_widgets/widgets/button_resume/button_resume.py,sha256=MH6JqiA2GkModbS0EC0_k5cYHIVVkuY9P3hylYLYfE0,1467
|
98
|
+
bec_widgets/widgets/button_resume/register_resume_button.py,sha256=01t5Ruz7FkKt7vHUVHvRNgEKqRLbKDza3ZQxd4w0i8A,479
|
99
|
+
bec_widgets/widgets/button_resume/resume_button.pyproject,sha256=QEPSupXQtXZDfT1Y0PuCv7Fj6NhBTq1dyvRiFNkvhH8,31
|
100
|
+
bec_widgets/widgets/button_resume/resume_button_plugin.py,sha256=sqGn2I5XlsEpCjqZQBX8KNYpONJVAkBbzfFZL8OAsxI,1300
|
87
101
|
bec_widgets/widgets/color_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
102
|
bec_widgets/widgets/color_button/color_button.py,sha256=qGyZgQSFfF-IuZeEhdZv8t7hSx3YDFs22evmZejKC0Y,1229
|
89
103
|
bec_widgets/widgets/color_button/color_button.pyproject,sha256=LUYF4VkDOB4ttVe7YfvLh64K-XZg0-xaVT06BqCT3UA,30
|
@@ -160,7 +174,7 @@ bec_widgets/widgets/position_indicator/position_indicator.pyproject,sha256=s0JEf
|
|
160
174
|
bec_widgets/widgets/position_indicator/position_indicator_plugin.py,sha256=ehQPpwkjJ7k365i4gdwtmAmCbVmB1tvQLEo60J_ivo4,1413
|
161
175
|
bec_widgets/widgets/position_indicator/register_position_indicator.py,sha256=OZNiMgM_80TPSAXK_0hXAkne4vUh8DGvh_OdpOiMpwI,516
|
162
176
|
bec_widgets/widgets/positioner_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
163
|
-
bec_widgets/widgets/positioner_box/positioner_box.py,sha256=
|
177
|
+
bec_widgets/widgets/positioner_box/positioner_box.py,sha256=XJFbHiPkVbqp2wS6wgwzQUjqI_Iqu3CFmyQrDl0xFSY,11223
|
164
178
|
bec_widgets/widgets/positioner_box/positioner_box.pyproject,sha256=7966pHdDseaHciaPNEKgdQgbUThSZf5wEDCeAEJh9po,32
|
165
179
|
bec_widgets/widgets/positioner_box/positioner_box.ui,sha256=Y-Xp0z32okT7X4-rL5r7dF_QH_QpXvPes3f778cC7_k,5633
|
166
180
|
bec_widgets/widgets/positioner_box/positioner_box_plugin.py,sha256=kJtQgRFGkJYWbZqJ7K7o0UhdsgAlODUVZL8pKJWwMhs,1413
|
@@ -178,7 +192,7 @@ bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject,sha256=ZNYDnKD
|
|
178
192
|
bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py,sha256=-rw9ZSThgAH0Ubbr3X-L5x-ZqMXUGnauyFb4OmfUvD4,1394
|
179
193
|
bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
|
180
194
|
bec_widgets/widgets/scan_control/register_scan_control.py,sha256=xUX2yR0-MaIMg9_y9qe50yDDphzsh2x1b5PMrF90yPM,475
|
181
|
-
bec_widgets/widgets/scan_control/scan_control.py,sha256=
|
195
|
+
bec_widgets/widgets/scan_control/scan_control.py,sha256=pQkc9mPfGxOCJaJPuPUudSStuBk9lqUZovbGdY1cx7M,11587
|
182
196
|
bec_widgets/widgets/scan_control/scan_control.pyproject,sha256=eTgVDFKToIH8_BbJjM2RvbOLr7HnYoidX0SAHx640DM,30
|
183
197
|
bec_widgets/widgets/scan_control/scan_control_plugin.py,sha256=7GaqmaRgbwIPjVoXcyKVDl8UpfqC2weViup-YFfzUsM,1270
|
184
198
|
bec_widgets/widgets/scan_control/scan_group_box.py,sha256=BpX9ZphqOhdEbQnGzNeNlmuZsMS__U97CkBMical2FY,9300
|
@@ -189,9 +203,9 @@ bec_widgets/widgets/spinner/spinner_widget.pyproject,sha256=zzLajGB3DTgVnrSqMey2
|
|
189
203
|
bec_widgets/widgets/spinner/spinner_widget_plugin.py,sha256=AZYJJe40olMzqL6Edk6J-X_iNHcXrU-EQN4mCUCp_Fo,1355
|
190
204
|
bec_widgets/widgets/stop_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
191
205
|
bec_widgets/widgets/stop_button/register_stop_button.py,sha256=U7r3fEOH-uPhAQI-nTituHXDDXDWR4JQZ7_vD6b_dfM,471
|
192
|
-
bec_widgets/widgets/stop_button/stop_button.py,sha256=
|
206
|
+
bec_widgets/widgets/stop_button/stop_button.py,sha256=TiCXLisaTdHKCcsNl5yMBUsYH9zUfwbeEe3zJrGH8qQ,1686
|
193
207
|
bec_widgets/widgets/stop_button/stop_button.pyproject,sha256=Cc_xbv-zfzNVpsdg_1QyzuTlrJaM9_BkIjes70umrx0,29
|
194
|
-
bec_widgets/widgets/stop_button/stop_button_plugin.py,sha256=
|
208
|
+
bec_widgets/widgets/stop_button/stop_button_plugin.py,sha256=VT-WVLq89fw7PwML7JDMCF1bqfopLCZIgMA4yetl65M,1365
|
195
209
|
bec_widgets/widgets/text_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
196
210
|
bec_widgets/widgets/text_box/register_text_box.py,sha256=UwrmCoYjAAtJJK8BwC0P_wSb-lOlOvxPe3-Bemg_9nw,459
|
197
211
|
bec_widgets/widgets/text_box/text_box.py,sha256=urkHtDQBSf4ws5BcpYIe5cfj-r-GXQOngcGUVYWvgRo,4297
|
@@ -224,8 +238,8 @@ bec_widgets/widgets/website/register_website_widget.py,sha256=LIQJpV9uqcBiPR9cEA
|
|
224
238
|
bec_widgets/widgets/website/website.py,sha256=kDlqjwtx0yft1ZNRhTdHnYh_5KZHfqT_ZGPOKT4C-yI,2619
|
225
239
|
bec_widgets/widgets/website/website_widget.pyproject,sha256=scOiV3cV1_BjbzpPzy2N8rIJL5P2qIZz8ObTJ-Uvdtg,25
|
226
240
|
bec_widgets/widgets/website/website_widget_plugin.py,sha256=pz38_C2cZ0yvPPS02wdIPcmhFo_yiwUhflsASocAPQQ,1341
|
227
|
-
bec_widgets-0.99.
|
228
|
-
bec_widgets-0.99.
|
229
|
-
bec_widgets-0.99.
|
230
|
-
bec_widgets-0.99.
|
231
|
-
bec_widgets-0.99.
|
241
|
+
bec_widgets-0.99.12.dist-info/METADATA,sha256=meqZoR4X-i0IEv8GXcSeCQBGzHpF6CdYR9oCul-5syA,1334
|
242
|
+
bec_widgets-0.99.12.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
243
|
+
bec_widgets-0.99.12.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
|
244
|
+
bec_widgets-0.99.12.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
245
|
+
bec_widgets-0.99.12.dist-info/RECORD,,
|
pyproject.toml
CHANGED
Binary file
|
Binary file
|
File without changes
|
File without changes
|
File without changes
|