bec-widgets 0.112.0__py3-none-any.whl → 0.113.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 +46 -48
- PKG-INFO +1 -1
- bec_widgets/applications/__init__.py +0 -0
- bec_widgets/applications/alignment/__init__.py +0 -0
- bec_widgets/applications/alignment/alignment_1d/__init__.py +0 -0
- bec_widgets/applications/alignment/alignment_1d/alignment_1d.py +265 -0
- bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui +869 -0
- bec_widgets/assets/app_icons/alignment_1d.png +0 -0
- bec_widgets/qt_utils/toolbar.py +3 -1
- bec_widgets/utils/bec_signal_proxy.py +54 -0
- bec_widgets/utils/linear_region_selector.py +15 -3
- bec_widgets/utils/plot_indicator_items.py +247 -0
- bec_widgets/widgets/bec_status_box/bec_status_box.py +5 -9
- bec_widgets/widgets/bec_status_box/status_item.py +18 -9
- bec_widgets/widgets/dap_combo_box/dap_combo_box.py +12 -13
- bec_widgets/widgets/figure/plots/plot_base.py +5 -0
- bec_widgets/widgets/figure/plots/waveform/waveform.py +17 -15
- bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py +151 -16
- bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui +47 -14
- bec_widgets/widgets/positioner_box/positioner_box.py +4 -1
- bec_widgets/widgets/scan_control/scan_control.py +38 -0
- bec_widgets/widgets/stop_button/stop_button.py +14 -2
- {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/METADATA +1 -1
- {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/RECORD +28 -25
- pyproject.toml +1 -1
- bec_widgets/assets/status_icons/error.svg +0 -3
- bec_widgets/assets/status_icons/not_connected.svg +0 -3
- bec_widgets/assets/status_icons/refresh.svg +0 -3
- bec_widgets/assets/status_icons/running.svg +0 -3
- bec_widgets/assets/status_icons/warning.svg +0 -3
- {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/WHEEL +0 -0
- {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/entry_points.txt +0 -0
- {bec_widgets-0.112.0.dist-info → bec_widgets-0.113.0.dist-info}/licenses/LICENSE +0 -0
@@ -1,12 +1,12 @@
|
|
1
1
|
import os
|
2
2
|
|
3
|
-
from bec_lib.endpoints import MessageEndpoints
|
4
3
|
from bec_lib.logger import bec_logger
|
5
4
|
from qtpy.QtCore import Property, Signal, Slot
|
6
|
-
from qtpy.QtWidgets import QTreeWidgetItem, QVBoxLayout, QWidget
|
5
|
+
from qtpy.QtWidgets import QPushButton, QTreeWidgetItem, QVBoxLayout, QWidget
|
7
6
|
|
8
7
|
from bec_widgets.utils import UILoader
|
9
8
|
from bec_widgets.utils.bec_widget import BECWidget
|
9
|
+
from bec_widgets.utils.colors import get_accent_colors
|
10
10
|
|
11
11
|
logger = bec_logger.logger
|
12
12
|
|
@@ -15,7 +15,10 @@ class LMFitDialog(BECWidget, QWidget):
|
|
15
15
|
"""Dialog for displaying the fit summary and params for LMFit DAP processes"""
|
16
16
|
|
17
17
|
ICON_NAME = "monitoring"
|
18
|
+
# Signal to emit the currently selected fit curve_id
|
18
19
|
selected_fit = Signal(str)
|
20
|
+
# Signal to emit a move action in form of a tuple (param_name, value)
|
21
|
+
move_action = Signal(tuple)
|
19
22
|
|
20
23
|
def __init__(
|
21
24
|
self,
|
@@ -49,9 +52,54 @@ class LMFitDialog(BECWidget, QWidget):
|
|
49
52
|
self.summary_data = {}
|
50
53
|
self._fit_curve_id = None
|
51
54
|
self._deci_precision = 3
|
55
|
+
self._always_show_latest = False
|
52
56
|
self.ui.curve_list.currentItemChanged.connect(self.display_fit_details)
|
53
57
|
self.layout.setContentsMargins(0, 0, 0, 0)
|
54
58
|
self.setLayout(self.layout)
|
59
|
+
self._active_actions = []
|
60
|
+
self._enable_actions = True
|
61
|
+
self._move_buttons = []
|
62
|
+
self._accent_colors = get_accent_colors()
|
63
|
+
self.action_buttons = {}
|
64
|
+
|
65
|
+
@property
|
66
|
+
def enable_actions(self) -> bool:
|
67
|
+
"""Property to enable the move to buttons."""
|
68
|
+
return self._enable_actions
|
69
|
+
|
70
|
+
@enable_actions.setter
|
71
|
+
def enable_actions(self, enable: bool):
|
72
|
+
self._enable_actions = enable
|
73
|
+
for button in self.action_buttons.values():
|
74
|
+
button.setEnabled(enable)
|
75
|
+
|
76
|
+
@Property(list)
|
77
|
+
def active_action_list(self) -> list[str]:
|
78
|
+
"""Property to list the names of the fit parameters for which actions should be enabled."""
|
79
|
+
return self._active_actions
|
80
|
+
|
81
|
+
@active_action_list.setter
|
82
|
+
def active_action_list(self, actions: list[str]):
|
83
|
+
self._active_actions = actions
|
84
|
+
|
85
|
+
# This slot needed?
|
86
|
+
@Slot(bool)
|
87
|
+
def set_actions_enabled(self, enable: bool) -> bool:
|
88
|
+
"""Slot to enable the move to buttons.
|
89
|
+
|
90
|
+
Args:
|
91
|
+
enable (bool): Whether to enable the action buttons.
|
92
|
+
"""
|
93
|
+
self.enable_actions = enable
|
94
|
+
|
95
|
+
@Property(bool)
|
96
|
+
def always_show_latest(self):
|
97
|
+
"""Property to indicate if always the latest DAP update is displayed."""
|
98
|
+
return self._always_show_latest
|
99
|
+
|
100
|
+
@always_show_latest.setter
|
101
|
+
def always_show_latest(self, show: bool):
|
102
|
+
self._always_show_latest = show
|
55
103
|
|
56
104
|
@Property(bool)
|
57
105
|
def hide_curve_selection(self):
|
@@ -67,8 +115,36 @@ class LMFitDialog(BECWidget, QWidget):
|
|
67
115
|
"""
|
68
116
|
self.ui.group_curve_selection.setVisible(not show)
|
69
117
|
|
118
|
+
@Property(bool)
|
119
|
+
def hide_summary(self) -> bool:
|
120
|
+
"""Property for showing the summary."""
|
121
|
+
return not self.ui.group_summary.isVisible()
|
122
|
+
|
123
|
+
@hide_summary.setter
|
124
|
+
def hide_summary(self, show: bool):
|
125
|
+
"""Setter for showing the summary.
|
126
|
+
|
127
|
+
Args:
|
128
|
+
show (bool): Whether to show the summary.
|
129
|
+
"""
|
130
|
+
self.ui.group_summary.setVisible(not show)
|
131
|
+
|
132
|
+
@Property(bool)
|
133
|
+
def hide_parameters(self) -> bool:
|
134
|
+
"""Property for showing the parameters."""
|
135
|
+
return not self.ui.group_parameters.isVisible()
|
136
|
+
|
137
|
+
@hide_parameters.setter
|
138
|
+
def hide_parameters(self, show: bool):
|
139
|
+
"""Setter for showing the parameters.
|
140
|
+
|
141
|
+
Args:
|
142
|
+
show (bool): Whether to show the parameters.
|
143
|
+
"""
|
144
|
+
self.ui.group_parameters.setVisible(not show)
|
145
|
+
|
70
146
|
@property
|
71
|
-
def fit_curve_id(self):
|
147
|
+
def fit_curve_id(self) -> str:
|
72
148
|
"""Property for the currently displayed fit curve_id."""
|
73
149
|
return self._fit_curve_id
|
74
150
|
|
@@ -112,19 +188,34 @@ class LMFitDialog(BECWidget, QWidget):
|
|
112
188
|
curve_id = metadata.get("curve_id", "")
|
113
189
|
self.summary_data.update({curve_id: data})
|
114
190
|
self.refresh_curve_list()
|
115
|
-
if self.fit_curve_id is None:
|
191
|
+
if self.fit_curve_id is None or self.always_show_latest is True:
|
116
192
|
self.fit_curve_id = curve_id
|
117
193
|
if curve_id != self.fit_curve_id:
|
118
194
|
return
|
119
195
|
if data is None:
|
120
196
|
return
|
121
197
|
self.ui.summary_tree.clear()
|
198
|
+
chi_squared = data.get("chisqr", 0.0)
|
199
|
+
if isinstance(chi_squared, float) or isinstance(chi_squared, int):
|
200
|
+
chi_squared = f"{chi_squared:.{self._deci_precision}f}"
|
201
|
+
else:
|
202
|
+
chi_squared = "None"
|
203
|
+
reduced_chi_squared = data.get("redchi", 0.0)
|
204
|
+
if isinstance(reduced_chi_squared, float) or isinstance(reduced_chi_squared, int):
|
205
|
+
reduced_chi_squared = f"{reduced_chi_squared:.{self._deci_precision}f}"
|
206
|
+
else:
|
207
|
+
reduced_chi_squared = "None"
|
208
|
+
r_squared = data.get("rsquared", 0.0)
|
209
|
+
if isinstance(r_squared, float) or isinstance(r_squared, int):
|
210
|
+
r_squared = f"{r_squared:.{self._deci_precision}f}"
|
211
|
+
else:
|
212
|
+
r_squared = "None"
|
122
213
|
properties = [
|
123
214
|
("Model", data.get("model", "")),
|
124
215
|
("Method", data.get("method", "")),
|
125
|
-
("Chi-Squared",
|
126
|
-
("Reduced Chi-Squared",
|
127
|
-
("R-Squared",
|
216
|
+
("Chi-Squared", chi_squared),
|
217
|
+
("Reduced Chi-Squared", reduced_chi_squared),
|
218
|
+
("R-Squared", r_squared),
|
128
219
|
("Message", data.get("message", "")),
|
129
220
|
]
|
130
221
|
for prop, val in properties:
|
@@ -149,18 +240,62 @@ class LMFitDialog(BECWidget, QWidget):
|
|
149
240
|
Args:
|
150
241
|
params (list): List of LMFit parameters for the fit curve.
|
151
242
|
"""
|
243
|
+
self._move_buttons = []
|
152
244
|
self.ui.param_tree.clear()
|
153
245
|
for param in params:
|
154
|
-
param_name
|
155
|
-
|
156
|
-
|
157
|
-
f"{
|
158
|
-
|
159
|
-
|
246
|
+
param_name = param[0]
|
247
|
+
param_value = param[1]
|
248
|
+
if isinstance(param_value, float) or isinstance(param_value, int):
|
249
|
+
param_value = f"{param_value:.{self._deci_precision}f}"
|
250
|
+
else:
|
251
|
+
param_value = "None"
|
252
|
+
param_std = param[7]
|
253
|
+
if isinstance(param_std, float) or isinstance(param_std, int):
|
254
|
+
param_std = f"{param_std:.{self._deci_precision}f}"
|
255
|
+
else:
|
256
|
+
param_std = "None"
|
257
|
+
|
258
|
+
tree_item = QTreeWidgetItem(self.ui.param_tree, [param_name, param_value, param_std])
|
259
|
+
if param_name in self.active_action_list: # pylint: disable=unsupported-membership-test
|
260
|
+
# Create a push button to move the motor to a specific position
|
261
|
+
widget = QWidget()
|
262
|
+
button = QPushButton(f"Move to {param_name}")
|
263
|
+
button.clicked.connect(self._create_move_action(param_name, param[1]))
|
264
|
+
if self.enable_actions is True:
|
265
|
+
button.setEnabled(True)
|
266
|
+
else:
|
267
|
+
button.setEnabled(False)
|
268
|
+
button.setStyleSheet(
|
269
|
+
f"""
|
270
|
+
QPushButton:enabled {{ background-color: {self._accent_colors.success.name()};color: white; }}
|
271
|
+
QPushButton:disabled {{ background-color: grey;color: white; }}
|
272
|
+
"""
|
273
|
+
)
|
274
|
+
self.action_buttons[param_name] = button
|
275
|
+
layout = QVBoxLayout()
|
276
|
+
layout.addWidget(self.action_buttons[param_name])
|
277
|
+
layout.setContentsMargins(0, 0, 0, 0)
|
278
|
+
widget.setLayout(layout)
|
279
|
+
self.ui.param_tree.setItemWidget(tree_item, 3, widget)
|
280
|
+
|
281
|
+
def _create_move_action(self, param_name: str, param_value: float) -> callable:
|
282
|
+
"""Create a move action for the given parameter name and value.
|
283
|
+
|
284
|
+
Args:
|
285
|
+
param_name (str): The name of the parameter.
|
286
|
+
param_value (float): The value of the parameter.
|
287
|
+
Returns:
|
288
|
+
callable: The move action with the given parameter name and value.
|
289
|
+
"""
|
290
|
+
|
291
|
+
def move_action():
|
292
|
+
self.move_action.emit((param_name, param_value))
|
293
|
+
|
294
|
+
return move_action
|
160
295
|
|
161
296
|
def populate_curve_list(self):
|
162
297
|
"""Populate the curve list with the available fit curves."""
|
163
|
-
for curve_name in self.summary_data
|
298
|
+
for curve_name in self.summary_data:
|
164
299
|
self.ui.curve_list.addItem(curve_name)
|
165
300
|
|
166
301
|
def refresh_curve_list(self):
|
@@ -183,10 +318,10 @@ class LMFitDialog(BECWidget, QWidget):
|
|
183
318
|
self.update_summary_tree(data, {"curve_id": curve_name})
|
184
319
|
|
185
320
|
|
186
|
-
if __name__ == "__main__":
|
321
|
+
if __name__ == "__main__": # pragma: no cover
|
187
322
|
import sys
|
188
323
|
|
189
|
-
from qtpy.QtWidgets import QApplication
|
324
|
+
from qtpy.QtWidgets import QApplication # pylint: disable=ungrouped-imports
|
190
325
|
|
191
326
|
app = QApplication(sys.argv)
|
192
327
|
dialog = LMFitDialog()
|
@@ -6,12 +6,12 @@
|
|
6
6
|
<rect>
|
7
7
|
<x>0</x>
|
8
8
|
<y>0</y>
|
9
|
-
<width>
|
10
|
-
<height>
|
9
|
+
<width>303</width>
|
10
|
+
<height>457</height>
|
11
11
|
</rect>
|
12
12
|
</property>
|
13
13
|
<property name="sizePolicy">
|
14
|
-
<sizepolicy hsizetype="
|
14
|
+
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
15
15
|
<horstretch>0</horstretch>
|
16
16
|
<verstretch>0</verstretch>
|
17
17
|
</sizepolicy>
|
@@ -19,15 +19,40 @@
|
|
19
19
|
<property name="windowTitle">
|
20
20
|
<string>Form</string>
|
21
21
|
</property>
|
22
|
-
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="
|
22
|
+
<layout class="QVBoxLayout" name="verticalLayout_4" stretch="1,2,2">
|
23
|
+
<property name="leftMargin">
|
24
|
+
<number>0</number>
|
25
|
+
</property>
|
26
|
+
<property name="topMargin">
|
27
|
+
<number>0</number>
|
28
|
+
</property>
|
29
|
+
<property name="rightMargin">
|
30
|
+
<number>0</number>
|
31
|
+
</property>
|
32
|
+
<property name="bottomMargin">
|
33
|
+
<number>0</number>
|
34
|
+
</property>
|
23
35
|
<item>
|
24
36
|
<widget class="QGroupBox" name="group_curve_selection">
|
37
|
+
<property name="sizePolicy">
|
38
|
+
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
39
|
+
<horstretch>0</horstretch>
|
40
|
+
<verstretch>0</verstretch>
|
41
|
+
</sizepolicy>
|
42
|
+
</property>
|
25
43
|
<property name="title">
|
26
44
|
<string>Select Curve</string>
|
27
45
|
</property>
|
28
46
|
<layout class="QVBoxLayout" name="verticalLayout" stretch="3">
|
29
47
|
<item>
|
30
|
-
<widget class="QListWidget" name="curve_list"
|
48
|
+
<widget class="QListWidget" name="curve_list">
|
49
|
+
<property name="sizePolicy">
|
50
|
+
<sizepolicy hsizetype="Ignored" vsizetype="Ignored">
|
51
|
+
<horstretch>0</horstretch>
|
52
|
+
<verstretch>0</verstretch>
|
53
|
+
</sizepolicy>
|
54
|
+
</property>
|
55
|
+
</widget>
|
31
56
|
</item>
|
32
57
|
</layout>
|
33
58
|
</widget>
|
@@ -35,15 +60,15 @@
|
|
35
60
|
<item>
|
36
61
|
<widget class="QGroupBox" name="group_summary">
|
37
62
|
<property name="sizePolicy">
|
38
|
-
<sizepolicy hsizetype="
|
63
|
+
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
39
64
|
<horstretch>0</horstretch>
|
40
65
|
<verstretch>0</verstretch>
|
41
66
|
</sizepolicy>
|
42
67
|
</property>
|
43
68
|
<property name="minimumSize">
|
44
69
|
<size>
|
45
|
-
<width>
|
46
|
-
<height>
|
70
|
+
<width>0</width>
|
71
|
+
<height>0</height>
|
47
72
|
</size>
|
48
73
|
</property>
|
49
74
|
<property name="title">
|
@@ -53,7 +78,7 @@
|
|
53
78
|
<item>
|
54
79
|
<widget class="QTreeWidget" name="summary_tree">
|
55
80
|
<property name="sizePolicy">
|
56
|
-
<sizepolicy hsizetype="
|
81
|
+
<sizepolicy hsizetype="Ignored" vsizetype="Ignored">
|
57
82
|
<horstretch>0</horstretch>
|
58
83
|
<verstretch>0</verstretch>
|
59
84
|
</sizepolicy>
|
@@ -88,15 +113,15 @@
|
|
88
113
|
<item>
|
89
114
|
<widget class="QGroupBox" name="group_parameters">
|
90
115
|
<property name="sizePolicy">
|
91
|
-
<sizepolicy hsizetype="
|
116
|
+
<sizepolicy hsizetype="Minimum" vsizetype="Minimum">
|
92
117
|
<horstretch>0</horstretch>
|
93
118
|
<verstretch>0</verstretch>
|
94
119
|
</sizepolicy>
|
95
120
|
</property>
|
96
121
|
<property name="minimumSize">
|
97
122
|
<size>
|
98
|
-
<width>
|
99
|
-
<height>
|
123
|
+
<width>0</width>
|
124
|
+
<height>0</height>
|
100
125
|
</size>
|
101
126
|
</property>
|
102
127
|
<property name="title">
|
@@ -106,7 +131,7 @@
|
|
106
131
|
<item>
|
107
132
|
<widget class="QTreeWidget" name="param_tree">
|
108
133
|
<property name="sizePolicy">
|
109
|
-
<sizepolicy hsizetype="
|
134
|
+
<sizepolicy hsizetype="Ignored" vsizetype="Ignored">
|
110
135
|
<horstretch>0</horstretch>
|
111
136
|
<verstretch>0</verstretch>
|
112
137
|
</sizepolicy>
|
@@ -117,8 +142,11 @@
|
|
117
142
|
<height>0</height>
|
118
143
|
</size>
|
119
144
|
</property>
|
145
|
+
<property name="columnCount">
|
146
|
+
<number>4</number>
|
147
|
+
</property>
|
120
148
|
<attribute name="headerDefaultSectionSize">
|
121
|
-
<number>
|
149
|
+
<number>70</number>
|
122
150
|
</attribute>
|
123
151
|
<column>
|
124
152
|
<property name="text">
|
@@ -135,6 +163,11 @@
|
|
135
163
|
<string>Std</string>
|
136
164
|
</property>
|
137
165
|
</column>
|
166
|
+
<column>
|
167
|
+
<property name="text">
|
168
|
+
<string>Action</string>
|
169
|
+
</property>
|
170
|
+
</column>
|
138
171
|
</widget>
|
139
172
|
</item>
|
140
173
|
</layout>
|
@@ -33,6 +33,8 @@ class PositionerBox(BECWidget, QWidget):
|
|
33
33
|
ICON_NAME = "switch_right"
|
34
34
|
USER_ACCESS = ["set_positioner"]
|
35
35
|
device_changed = Signal(str, str)
|
36
|
+
# Signal emitted to inform listeners about a position update
|
37
|
+
position_update = Signal(float)
|
36
38
|
|
37
39
|
def __init__(self, parent=None, device: Positioner = None, **kwargs):
|
38
40
|
"""Initialize the PositionerBox widget.
|
@@ -245,6 +247,7 @@ class PositionerBox(BECWidget, QWidget):
|
|
245
247
|
|
246
248
|
if readback_val is not None:
|
247
249
|
self.ui.readback.setText(f"{readback_val:.{precision}f}")
|
250
|
+
self.position_update.emit(readback_val)
|
248
251
|
|
249
252
|
if setpoint_val is not None:
|
250
253
|
self.ui.setpoint.setText(f"{setpoint_val:.{precision}f}")
|
@@ -318,7 +321,7 @@ class PositionerBox(BECWidget, QWidget):
|
|
318
321
|
if __name__ == "__main__": # pragma: no cover
|
319
322
|
import sys
|
320
323
|
|
321
|
-
from qtpy.QtWidgets import QApplication
|
324
|
+
from qtpy.QtWidgets import QApplication # pylint: disable=ungrouped-imports
|
322
325
|
|
323
326
|
app = QApplication(sys.argv)
|
324
327
|
set_theme("dark")
|
@@ -243,6 +243,44 @@ class ScanControl(BECWidget, QWidget):
|
|
243
243
|
"""
|
244
244
|
self.current_scan = scan_name
|
245
245
|
|
246
|
+
@Property(bool)
|
247
|
+
def hide_arg_box(self):
|
248
|
+
"""Property to hide the argument box."""
|
249
|
+
if self.arg_box is None:
|
250
|
+
return True
|
251
|
+
return not self.arg_box.isVisible()
|
252
|
+
|
253
|
+
@hide_arg_box.setter
|
254
|
+
def hide_arg_box(self, hide: bool):
|
255
|
+
"""Setter for the hide_arg_box property.
|
256
|
+
|
257
|
+
Args:
|
258
|
+
hide(bool): Hide or show the argument box.
|
259
|
+
"""
|
260
|
+
if self.arg_box is not None:
|
261
|
+
self.arg_box.setVisible(not hide)
|
262
|
+
|
263
|
+
@Property(bool)
|
264
|
+
def hide_kwarg_boxes(self):
|
265
|
+
"""Property to hide the keyword argument boxes."""
|
266
|
+
if len(self.kwarg_boxes) == 0:
|
267
|
+
return True
|
268
|
+
|
269
|
+
for box in self.kwarg_boxes:
|
270
|
+
if box is not None:
|
271
|
+
return not box.isVisible()
|
272
|
+
|
273
|
+
@hide_kwarg_boxes.setter
|
274
|
+
def hide_kwarg_boxes(self, hide: bool):
|
275
|
+
"""Setter for the hide_kwarg_boxes property.
|
276
|
+
|
277
|
+
Args:
|
278
|
+
hide(bool): Hide or show the keyword argument boxes.
|
279
|
+
"""
|
280
|
+
if len(self.kwarg_boxes) > 0:
|
281
|
+
for box in self.kwarg_boxes:
|
282
|
+
box.setVisible(not hide)
|
283
|
+
|
246
284
|
@Property(bool)
|
247
285
|
def hide_scan_remember_toggle(self):
|
248
286
|
"""Property to hide the scan remember toggle."""
|
@@ -1,6 +1,6 @@
|
|
1
1
|
from bec_qthemes import material_icon
|
2
2
|
from qtpy.QtCore import Qt
|
3
|
-
from qtpy.QtWidgets import QHBoxLayout, QPushButton, QToolButton, QWidget
|
3
|
+
from qtpy.QtWidgets import QHBoxLayout, QPushButton, QSizePolicy, QToolButton, QWidget
|
4
4
|
|
5
5
|
from bec_widgets.qt_utils.error_popups import SafeSlot
|
6
6
|
from bec_widgets.utils.bec_widget import BECWidget
|
@@ -28,9 +28,10 @@ class StopButton(BECWidget, QWidget):
|
|
28
28
|
self.button.setToolTip("Stop the scan queue")
|
29
29
|
else:
|
30
30
|
self.button = QPushButton()
|
31
|
+
self.button.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
31
32
|
self.button.setText("Stop")
|
32
33
|
self.button.setStyleSheet(
|
33
|
-
"background-color: #cc181e; color: white; font-weight: bold; font-size: 12px;"
|
34
|
+
f"background-color: #cc181e; color: white; font-weight: bold; font-size: 12px;"
|
34
35
|
)
|
35
36
|
self.button.clicked.connect(self.stop_scan)
|
36
37
|
|
@@ -47,3 +48,14 @@ class StopButton(BECWidget, QWidget):
|
|
47
48
|
scan_id(str|None): The scan id to stop. If None, the current scan will be stopped.
|
48
49
|
"""
|
49
50
|
self.queue.request_scan_halt()
|
51
|
+
|
52
|
+
|
53
|
+
if __name__ == "__main__": # pragma: no cover
|
54
|
+
import sys
|
55
|
+
|
56
|
+
from qtpy.QtWidgets import QApplication
|
57
|
+
|
58
|
+
app = QApplication(sys.argv)
|
59
|
+
w = StopButton()
|
60
|
+
w.show()
|
61
|
+
sys.exit(app.exec_())
|
@@ -2,24 +2,25 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=Dc1iDjsc72UxdUtihx4uSZU0lrTQeR8hZwGx1MQBfKE,8432
|
3
3
|
.pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256=
|
5
|
+
CHANGELOG.md,sha256=MsTSF60CZ8CIFVa6uxezN4uFqtKKwx3EtNpXThid_0g,6989
|
6
6
|
LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=C4C8XhGH6pOZ-_r4CnJWLdDM-x8W0u4MwToUKkVTD0I,1334
|
8
8
|
README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=i4en2BSq0FQlp72LBk4g93_t1N4lyRd3UCXW_oeFCuQ,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/applications/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
|
+
bec_widgets/applications/alignment/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
18
|
+
bec_widgets/applications/alignment/alignment_1d/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
+
bec_widgets/applications/alignment/alignment_1d/alignment_1d.py,sha256=V3blVi6iZbZBfzd7hzAk1ZGdSwiV2C6ZvZr9OUBAfNg,11293
|
20
|
+
bec_widgets/applications/alignment/alignment_1d/alignment_1d.ui,sha256=-ZrQelty_vHKPICgtOmoxRsLp13StOOwegTuJp0Xshw,27154
|
16
21
|
bec_widgets/assets/app_icons/BEC-General-App.png,sha256=hc2ktly53DZAbl_rE3cb-vdRa5gtdCmBEjfwm2y5P4g,447581
|
22
|
+
bec_widgets/assets/app_icons/alignment_1d.png,sha256=5VouaWieb4lVv3wUBNHaO5ovUW2Fk25aTKYQzOWy0mg,2071069
|
17
23
|
bec_widgets/assets/app_icons/bec_widgets_icon.png,sha256=K8dgGwIjalDh9PRHUsSQBqgdX7a00nM3igZdc20pkYM,1747017
|
18
|
-
bec_widgets/assets/status_icons/error.svg,sha256=U_-8qDHAeCH8Z9sUXoU5zSPf0RyVx-CAWK6h2gH99C4,718
|
19
|
-
bec_widgets/assets/status_icons/not_connected.svg,sha256=wuNdFzNHuZrd_pguRi-mUw3l6uRSkb37yGFJ6kKyMQo,721
|
20
|
-
bec_widgets/assets/status_icons/refresh.svg,sha256=Em_236ARgCdkSof-HU5EYGwv2hXPhOH0NYj2mKaIrwI,559
|
21
|
-
bec_widgets/assets/status_icons/running.svg,sha256=nlc6rKh_f-uOxQSk0BkBNyWnPAJU5hf6P_NRcII7FBg,604
|
22
|
-
bec_widgets/assets/status_icons/warning.svg,sha256=CNx88p9kbDG51s9ztKf-cfYan4JdDBbk3-IFKfOOFlI,364
|
23
24
|
bec_widgets/cli/__init__.py,sha256=d0Q6Fn44e7wFfLabDOBxpcJ1DPKWlFunGYDUBmO-4hA,22
|
24
25
|
bec_widgets/cli/auto_updates.py,sha256=DwzRChcFIWPH2kCYvp8H7dXvyYSKGYv6LwCmK2sDR2E,5676
|
25
26
|
bec_widgets/cli/client.py,sha256=PaNh9ih6HXlOEDo6MHa4L3Yl3pjZSWZ0bCk-2G7RWiU,82154
|
@@ -47,11 +48,12 @@ bec_widgets/qt_utils/error_popups.py,sha256=y9gKKWaafp468ioHr96nBhf02ZpEgjDc-BAV
|
|
47
48
|
bec_widgets/qt_utils/palette_viewer.py,sha256=PGhJ-4XI0f7gNnC1djNgcIHYg6HDO6hPju4pfWj9rvg,6311
|
48
49
|
bec_widgets/qt_utils/redis_message_waiter.py,sha256=fvL_QgC0cTDv_FPJdRyp5AKjf401EJU4z3r38p47ydY,1745
|
49
50
|
bec_widgets/qt_utils/settings_dialog.py,sha256=NhtzTer_xzlB2lLLrGklkI1QYLJEWQpJoZbCz4o5daI,3645
|
50
|
-
bec_widgets/qt_utils/toolbar.py,sha256=
|
51
|
+
bec_widgets/qt_utils/toolbar.py,sha256=6D6GL0OjXEtuP9G83OiDxycyy6m8mqY2ChtPwinN9Ec,8735
|
51
52
|
bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
|
52
53
|
bec_widgets/utils/bec_connector.py,sha256=I9M_4g-_-WaMmhyXzChFCGXAElelx0mG6E1g0KvtEQs,10059
|
53
54
|
bec_widgets/utils/bec_designer.py,sha256=Z3MeMju-KmTz8POtm23VQfp4rvtD2sF6eIOKQkl2F7w,4729
|
54
55
|
bec_widgets/utils/bec_dispatcher.py,sha256=OFmkx9vOz4pA4Sdc14QreyDZ870QYskJ4B5daVVeYg4,6325
|
56
|
+
bec_widgets/utils/bec_signal_proxy.py,sha256=PKJ7v8pKrAaqA9XNDMZZBlhVtEInX-ae6_0m2cQhiEw,2107
|
55
57
|
bec_widgets/utils/bec_table.py,sha256=nA2b8ukSeUfquFMAxGrUVOqdrzMoDYD6O_4EYbOG2zk,717
|
56
58
|
bec_widgets/utils/bec_widget.py,sha256=1lrHNuvW6uOuPpr-cJBYJNbFekTsqpnQdfTo3P5tbWI,3330
|
57
59
|
bec_widgets/utils/colors.py,sha256=aUQkDMTRjTjS9lQfgO5NrUllU2r4ygDTTSUROtTBX90,12838
|
@@ -60,7 +62,8 @@ bec_widgets/utils/crosshair.py,sha256=8lik9k69WI2WMj5FGLbrKtny9duxqXUJAhpX8tHoyp
|
|
60
62
|
bec_widgets/utils/entry_validator.py,sha256=3skJIsUwTYicT76AMHm_M78RiWtUgyD2zb-Rxo2HdHQ,1313
|
61
63
|
bec_widgets/utils/generate_designer_plugin.py,sha256=eidqauS8YLgoxkPntPL0oSG_lYqI2D7fSyOZvOtCU_U,5891
|
62
64
|
bec_widgets/utils/layout_manager.py,sha256=H0nKsIMaPxRkof1MEXlSmW6w1dFxA6astaGzf4stI84,4727
|
63
|
-
bec_widgets/utils/linear_region_selector.py,sha256=
|
65
|
+
bec_widgets/utils/linear_region_selector.py,sha256=83qMSGnxCePdI5UL8_M4sMeK_BU9sZBzcw0o3Z_Jgxw,3286
|
66
|
+
bec_widgets/utils/plot_indicator_items.py,sha256=OGL7wq-cj1IBn5dfNPP12HBcT55RiBriibQPT00wK7c,9819
|
64
67
|
bec_widgets/utils/plugin_utils.py,sha256=njvVdvF-AR47Yn80ntpvFldEvLuFx9GV-qEX4p_n4AI,5263
|
65
68
|
bec_widgets/utils/reference_utils.py,sha256=8pq06TOvZBZdim0G6hvPJXzVDib7ve4o-Ptvfp563nk,2859
|
66
69
|
bec_widgets/utils/rpc_decorator.py,sha256=pIvtqySQLnuS7l2Ti_UAe4WX7CRivZnsE5ZdKAihxh0,479
|
@@ -85,11 +88,11 @@ bec_widgets/widgets/bec_queue/bec_queue.pyproject,sha256=VhoNmAv1DQUl9dg7dELyf5i
|
|
85
88
|
bec_widgets/widgets/bec_queue/bec_queue_plugin.py,sha256=cotVUNKphAXQAp6mWtKoyzJ-vyAnfd86tGf4yNp0CjU,1341
|
86
89
|
bec_widgets/widgets/bec_queue/register_bec_queue.py,sha256=XnwtUSa1asK1b80knKWodcyX9qJy4DnKsQL_FoDfZy4,463
|
87
90
|
bec_widgets/widgets/bec_status_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
88
|
-
bec_widgets/widgets/bec_status_box/bec_status_box.py,sha256=
|
91
|
+
bec_widgets/widgets/bec_status_box/bec_status_box.py,sha256=4ZZ3rgimxBpTHzQcjHXLdmmygmcsNpO6mZy0u6ZFr3k,13038
|
89
92
|
bec_widgets/widgets/bec_status_box/bec_status_box.pyproject,sha256=JWtx3Csfn2h7ODtk10HtyBNLf6tFIqyU6g04rMWOO1U,32
|
90
93
|
bec_widgets/widgets/bec_status_box/bec_status_box_plugin.py,sha256=UmsXAmeHg7FRkzirOLBPi3LwbRbG75w8LglYt4jn6Fc,1412
|
91
94
|
bec_widgets/widgets/bec_status_box/register_bec_status_box.py,sha256=EiQITnkNw7IU7hE776wAeXro97eZd9XlsB9essgCebE,481
|
92
|
-
bec_widgets/widgets/bec_status_box/status_item.py,sha256=
|
95
|
+
bec_widgets/widgets/bec_status_box/status_item.py,sha256=8ePcKMcj9GBSuczk-k0d98lL_zMiVtTF-RRTG-Khec0,5525
|
93
96
|
bec_widgets/widgets/button_abort/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
94
97
|
bec_widgets/widgets/button_abort/abort_button.pyproject,sha256=UtuaE0Lvs6uOGufhatUyJS_n2l6EBbYaGuILj_BNCLs,30
|
95
98
|
bec_widgets/widgets/button_abort/abort_button_plugin.py,sha256=3q0a4UE2O9s96Jjg6wi03CpXdQ7CnOI20ep7etEdxMo,1285
|
@@ -120,7 +123,7 @@ bec_widgets/widgets/console/console.pyproject,sha256=JcoDuZG03g1Bxkd3Aipo7jjLexu
|
|
120
123
|
bec_widgets/widgets/console/console_plugin.py,sha256=Jc1m24cjwyZI6cZB5twDTq9zjleeAMTaCDEJo5l5Q88,1349
|
121
124
|
bec_widgets/widgets/console/register_console.py,sha256=T05uIV0UsBaNsG8DzLpYMmdcA4_RW1RgGaXjG51lyAs,463
|
122
125
|
bec_widgets/widgets/dap_combo_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
123
|
-
bec_widgets/widgets/dap_combo_box/dap_combo_box.py,sha256=
|
126
|
+
bec_widgets/widgets/dap_combo_box/dap_combo_box.py,sha256=tNjz9QX_MsUy4gBFLzpiQkkXEtdkOUyqBuMjd9TGgFg,5797
|
124
127
|
bec_widgets/widgets/dap_combo_box/dap_combo_box.pyproject,sha256=3TzD8j0F6UYw8TPwKxVDeXdobnYIRXNrAUrXzqWjk4M,31
|
125
128
|
bec_widgets/widgets/dap_combo_box/dap_combo_box_plugin.py,sha256=WVR8k10SESRFm-hQUrcUfgycuNu7HIcZqV--24nw-TU,1270
|
126
129
|
bec_widgets/widgets/dap_combo_box/register_dap_combo_box.py,sha256=RGFzFmldBwQjpKB7wbIxJU20uprjXtqCVnUkt0Zc7aA,477
|
@@ -158,7 +161,7 @@ bec_widgets/widgets/figure/figure.py,sha256=IzQaV_9utjViJyjMydOa3-EJ9k-FVG2PTVm8
|
|
158
161
|
bec_widgets/widgets/figure/plots/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
159
162
|
bec_widgets/widgets/figure/plots/axis_settings.py,sha256=grgrX4t4eAzccW4jj4HYtMSxy8Wgcd9N9J1aU7UHtIs,3723
|
160
163
|
bec_widgets/widgets/figure/plots/axis_settings.ui,sha256=ye-guaRU_jhu7sHZS-9AjBjLrCtA1msOD0dszu4o9x8,11785
|
161
|
-
bec_widgets/widgets/figure/plots/plot_base.py,sha256=
|
164
|
+
bec_widgets/widgets/figure/plots/plot_base.py,sha256=pWaeT35pPYh5L3_N_Fw5fzC7t5TlsRdNZCVBMpC3BBc,15974
|
162
165
|
bec_widgets/widgets/figure/plots/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
163
166
|
bec_widgets/widgets/figure/plots/image/image.py,sha256=rq2zy-vwZLd3___rFRNEBnPFGKSu88T5T4ngrTkcbr0,25014
|
164
167
|
bec_widgets/widgets/figure/plots/image/image_item.py,sha256=DhlBbI-c8nVbJ8tREQhyNr8Qk4W6PXF0HgBhrIoYQPo,11012
|
@@ -166,7 +169,7 @@ bec_widgets/widgets/figure/plots/image/image_processor.py,sha256=GeTtWjbldy6VejM
|
|
166
169
|
bec_widgets/widgets/figure/plots/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
167
170
|
bec_widgets/widgets/figure/plots/motor_map/motor_map.py,sha256=AiDq4bmcEoj9PlkRQtHCk-5cwvOFGPBcfxPNNr8E53Y,18399
|
168
171
|
bec_widgets/widgets/figure/plots/waveform/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
169
|
-
bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=
|
172
|
+
bec_widgets/widgets/figure/plots/waveform/waveform.py,sha256=wESdww5oTdAfVsW4M_kOZlxvEy5fFKKlDaf7NQuXXts,56296
|
170
173
|
bec_widgets/widgets/figure/plots/waveform/waveform_curve.py,sha256=RUo4GfXwlaCei8BBvWBQF3IEB8h-KgpvaHur6JUvT6s,8682
|
171
174
|
bec_widgets/widgets/image/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
172
175
|
bec_widgets/widgets/image/bec_image_widget.pyproject,sha256=PHisdBo5_5UCApd27GkizzqgfdjsDx2bFZa_p9LiSW8,30
|
@@ -178,9 +181,9 @@ bec_widgets/widgets/jupyter_console/jupyter_console.py,sha256=-e7HQOECeH5eDrJYh4
|
|
178
181
|
bec_widgets/widgets/lmfit_dialog/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
179
182
|
bec_widgets/widgets/lmfit_dialog/lm_fit_dialog.pyproject,sha256=PTvg1ddrW_R2_gd1cfA8UyxeVlgg5B-y71-F3lY6vKI,30
|
180
183
|
bec_widgets/widgets/lmfit_dialog/lm_fit_dialog_plugin.py,sha256=X73Wn6tBkRSfhBEbg0ZZGIMCG6ujkidoJMXTQPuk2Y8,1267
|
181
|
-
bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py,sha256=
|
184
|
+
bec_widgets/widgets/lmfit_dialog/lmfit_dialog.py,sha256=gFjxi_2HKAiNUmNRpo7ImFQjKw9mqwdHyZoycFrYerA,11656
|
182
185
|
bec_widgets/widgets/lmfit_dialog/lmfit_dialog_compact.ui,sha256=JbdMEPzbA3p2Ekz6U6NwXs1BqdBr71NUJNVOnhrN1dE,3397
|
183
|
-
bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui,sha256=
|
186
|
+
bec_widgets/widgets/lmfit_dialog/lmfit_dialog_vertical.ui,sha256=LQCQKQMcocdDElz-TbgC5kN6FTl4kUYh2zFbCjqtUQc,4877
|
184
187
|
bec_widgets/widgets/lmfit_dialog/register_lm_fit_dialog.py,sha256=a96eq_Lm_QtC0DAEcDrnF5PLj1LsDtxfNtmku7YPNw8,476
|
185
188
|
bec_widgets/widgets/motor_map/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
186
189
|
bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject,sha256=NAI8s5gRKz80ED4KY7OgD2OgSH5HEsjt2ux2BYp66yg,63
|
@@ -196,7 +199,7 @@ bec_widgets/widgets/position_indicator/position_indicator.pyproject,sha256=s0JEf
|
|
196
199
|
bec_widgets/widgets/position_indicator/position_indicator_plugin.py,sha256=ehQPpwkjJ7k365i4gdwtmAmCbVmB1tvQLEo60J_ivo4,1413
|
197
200
|
bec_widgets/widgets/position_indicator/register_position_indicator.py,sha256=OZNiMgM_80TPSAXK_0hXAkne4vUh8DGvh_OdpOiMpwI,516
|
198
201
|
bec_widgets/widgets/positioner_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
199
|
-
bec_widgets/widgets/positioner_box/positioner_box.py,sha256=
|
202
|
+
bec_widgets/widgets/positioner_box/positioner_box.py,sha256=xrANDL3dJM40c0AYhhessLGBdHkXSPOA-8KRvY5kKx0,11693
|
200
203
|
bec_widgets/widgets/positioner_box/positioner_box.pyproject,sha256=7966pHdDseaHciaPNEKgdQgbUThSZf5wEDCeAEJh9po,32
|
201
204
|
bec_widgets/widgets/positioner_box/positioner_box.ui,sha256=7LZlM9smIqmkvS2KAIDkBamn04mBAkXeG9T1fpKRQe8,6093
|
202
205
|
bec_widgets/widgets/positioner_box/positioner_box_plugin.py,sha256=kJtQgRFGkJYWbZqJ7K7o0UhdsgAlODUVZL8pKJWwMhs,1413
|
@@ -214,7 +217,7 @@ bec_widgets/widgets/ring_progress_bar/ring_progress_bar.pyproject,sha256=ZNYDnKD
|
|
214
217
|
bec_widgets/widgets/ring_progress_bar/ring_progress_bar_plugin.py,sha256=-rw9ZSThgAH0Ubbr3X-L5x-ZqMXUGnauyFb4OmfUvD4,1394
|
215
218
|
bec_widgets/widgets/scan_control/__init__.py,sha256=IOfHl15vxb_uC6KN62-PeUzbBha_vQyqkkXbJ2HU674,38
|
216
219
|
bec_widgets/widgets/scan_control/register_scan_control.py,sha256=xUX2yR0-MaIMg9_y9qe50yDDphzsh2x1b5PMrF90yPM,475
|
217
|
-
bec_widgets/widgets/scan_control/scan_control.py,sha256=
|
220
|
+
bec_widgets/widgets/scan_control/scan_control.py,sha256=wW_UwZbu9wgzRHTaB4gjtcr7txz9Hy27aKruNmMmK2w,19180
|
218
221
|
bec_widgets/widgets/scan_control/scan_control.pyproject,sha256=eTgVDFKToIH8_BbJjM2RvbOLr7HnYoidX0SAHx640DM,30
|
219
222
|
bec_widgets/widgets/scan_control/scan_control_plugin.py,sha256=7GaqmaRgbwIPjVoXcyKVDl8UpfqC2weViup-YFfzUsM,1270
|
220
223
|
bec_widgets/widgets/scan_control/scan_group_box.py,sha256=H2QQFvRlmpF-lilmRRNB-vsAcYQkDYhbHZo32hPRVr8,10488
|
@@ -225,7 +228,7 @@ bec_widgets/widgets/spinner/spinner_widget.pyproject,sha256=zzLajGB3DTgVnrSqMey2
|
|
225
228
|
bec_widgets/widgets/spinner/spinner_widget_plugin.py,sha256=AZYJJe40olMzqL6Edk6J-X_iNHcXrU-EQN4mCUCp_Fo,1355
|
226
229
|
bec_widgets/widgets/stop_button/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
227
230
|
bec_widgets/widgets/stop_button/register_stop_button.py,sha256=U7r3fEOH-uPhAQI-nTituHXDDXDWR4JQZ7_vD6b_dfM,471
|
228
|
-
bec_widgets/widgets/stop_button/stop_button.py,sha256=
|
231
|
+
bec_widgets/widgets/stop_button/stop_button.py,sha256=Y_6GPSZ3NjmMBbZFW8moJYO2C-Ay5Zp-u9RuNKZaFB0,2022
|
229
232
|
bec_widgets/widgets/stop_button/stop_button.pyproject,sha256=Cc_xbv-zfzNVpsdg_1QyzuTlrJaM9_BkIjes70umrx0,29
|
230
233
|
bec_widgets/widgets/stop_button/stop_button_plugin.py,sha256=VT-WVLq89fw7PwML7JDMCF1bqfopLCZIgMA4yetl65M,1365
|
231
234
|
bec_widgets/widgets/text_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -259,8 +262,8 @@ bec_widgets/widgets/website/register_website_widget.py,sha256=LIQJpV9uqcBiPR9cEA
|
|
259
262
|
bec_widgets/widgets/website/website.py,sha256=42pncCc_zI2eqeMArIurVmPUukRo5bTxa2h1Skah-io,3012
|
260
263
|
bec_widgets/widgets/website/website_widget.pyproject,sha256=scOiV3cV1_BjbzpPzy2N8rIJL5P2qIZz8ObTJ-Uvdtg,25
|
261
264
|
bec_widgets/widgets/website/website_widget_plugin.py,sha256=pz38_C2cZ0yvPPS02wdIPcmhFo_yiwUhflsASocAPQQ,1341
|
262
|
-
bec_widgets-0.
|
263
|
-
bec_widgets-0.
|
264
|
-
bec_widgets-0.
|
265
|
-
bec_widgets-0.
|
266
|
-
bec_widgets-0.
|
265
|
+
bec_widgets-0.113.0.dist-info/METADATA,sha256=C4C8XhGH6pOZ-_r4CnJWLdDM-x8W0u4MwToUKkVTD0I,1334
|
266
|
+
bec_widgets-0.113.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
267
|
+
bec_widgets-0.113.0.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
|
268
|
+
bec_widgets-0.113.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
269
|
+
bec_widgets-0.113.0.dist-info/RECORD,,
|