bec-widgets 1.8.0__py3-none-any.whl → 1.9.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- CHANGELOG.md +21 -23
- PKG-INFO +1 -1
- bec_widgets/qt_utils/side_panel.py +386 -0
- bec_widgets/utils/bec_designer.py +12 -5
- {bec_widgets-1.8.0.dist-info → bec_widgets-1.9.1.dist-info}/METADATA +1 -1
- {bec_widgets-1.8.0.dist-info → bec_widgets-1.9.1.dist-info}/RECORD +10 -9
- pyproject.toml +1 -1
- {bec_widgets-1.8.0.dist-info → bec_widgets-1.9.1.dist-info}/WHEEL +0 -0
- {bec_widgets-1.8.0.dist-info → bec_widgets-1.9.1.dist-info}/entry_points.txt +0 -0
- {bec_widgets-1.8.0.dist-info → bec_widgets-1.9.1.dist-info}/licenses/LICENSE +0 -0
CHANGELOG.md
CHANGED
@@ -1,6 +1,27 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
3
|
|
4
|
+
## v1.9.1 (2024-12-10)
|
5
|
+
|
6
|
+
### Bug Fixes
|
7
|
+
|
8
|
+
- **designer**: General way to find python lib on linux
|
9
|
+
([`6563abf`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/6563abfddc9fc9baba6769022d6925545decdba9))
|
10
|
+
|
11
|
+
|
12
|
+
## v1.9.0 (2024-12-10)
|
13
|
+
|
14
|
+
### Features
|
15
|
+
|
16
|
+
- **side_menu**: Side menu with stack widget added
|
17
|
+
([`c7d7c6d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c7d7c6d9ed7c2dcc42b33fcd590f1f27499322c1))
|
18
|
+
|
19
|
+
### Testing
|
20
|
+
|
21
|
+
- **side_panel**: Tests added
|
22
|
+
([`9b95b5d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/9b95b5d6164ff42673dbbc3031e5b1f45fbcde0a))
|
23
|
+
|
24
|
+
|
4
25
|
## v1.8.0 (2024-12-10)
|
5
26
|
|
6
27
|
### Features
|
@@ -187,26 +208,3 @@ Depending on the test, auto-updates are enabled or not.
|
|
187
208
|
|
188
209
|
|
189
210
|
## v1.3.3 (2024-11-07)
|
190
|
-
|
191
|
-
### Bug Fixes
|
192
|
-
|
193
|
-
- **scan_control**: Devicelineedit kwargs readings changed to get name of the positioner
|
194
|
-
([`5fabd4b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5fabd4bea95bafd2352102686357cc1db80813fd))
|
195
|
-
|
196
|
-
### Documentation
|
197
|
-
|
198
|
-
- Update outdated text in docs
|
199
|
-
([`4f0693c`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4f0693cae34b391d75884837e1ae6353a0501868))
|
200
|
-
|
201
|
-
|
202
|
-
## v1.3.2 (2024-11-05)
|
203
|
-
|
204
|
-
### Bug Fixes
|
205
|
-
|
206
|
-
- **plot_base**: Legend text color is changed when changing dark-light theme
|
207
|
-
([`2304c9f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2304c9f8497c1ab1492f3e6690bb79b0464c0df8))
|
208
|
-
|
209
|
-
### Build System
|
210
|
-
|
211
|
-
- Pyside6 version fixed 6.7.2
|
212
|
-
([`c6e48ec`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/c6e48ec1fe5aaee6a7c7a6f930f1520cd439cdb2))
|
PKG-INFO
CHANGED
@@ -0,0 +1,386 @@
|
|
1
|
+
import sys
|
2
|
+
from typing import Literal, Optional
|
3
|
+
|
4
|
+
from qtpy.QtCore import Property, QEasingCurve, QPropertyAnimation
|
5
|
+
from qtpy.QtGui import QAction
|
6
|
+
from qtpy.QtWidgets import (
|
7
|
+
QApplication,
|
8
|
+
QHBoxLayout,
|
9
|
+
QLabel,
|
10
|
+
QMainWindow,
|
11
|
+
QSizePolicy,
|
12
|
+
QSpacerItem,
|
13
|
+
QStackedWidget,
|
14
|
+
QVBoxLayout,
|
15
|
+
QWidget,
|
16
|
+
)
|
17
|
+
|
18
|
+
from bec_widgets.qt_utils.toolbar import MaterialIconAction, ModularToolBar
|
19
|
+
from bec_widgets.widgets.plots.waveform.waveform_widget import BECWaveformWidget
|
20
|
+
|
21
|
+
|
22
|
+
class SidePanel(QWidget):
|
23
|
+
"""
|
24
|
+
Side panel widget that can be placed on the left, right, top, or bottom of the main widget.
|
25
|
+
"""
|
26
|
+
|
27
|
+
def __init__(
|
28
|
+
self,
|
29
|
+
parent=None,
|
30
|
+
orientation: Literal["left", "right", "top", "bottom"] = "left",
|
31
|
+
panel_max_width: int = 200,
|
32
|
+
animation_duration: int = 200,
|
33
|
+
animations_enabled: bool = True,
|
34
|
+
):
|
35
|
+
super().__init__(parent=parent)
|
36
|
+
|
37
|
+
self._orientation = orientation
|
38
|
+
self._panel_max_width = panel_max_width
|
39
|
+
self._animation_duration = animation_duration
|
40
|
+
self._animations_enabled = animations_enabled
|
41
|
+
self._orientation = orientation
|
42
|
+
|
43
|
+
self._panel_width = 0
|
44
|
+
self._panel_height = 0
|
45
|
+
self.panel_visible = False
|
46
|
+
self.current_action: Optional[QAction] = None
|
47
|
+
self.current_index: Optional[int] = None
|
48
|
+
self.switching_actions = False
|
49
|
+
|
50
|
+
self._init_ui()
|
51
|
+
|
52
|
+
def _init_ui(self):
|
53
|
+
"""
|
54
|
+
Initialize the UI elements.
|
55
|
+
"""
|
56
|
+
if self._orientation in ("left", "right"):
|
57
|
+
self.main_layout = QHBoxLayout(self)
|
58
|
+
self.main_layout.setContentsMargins(0, 0, 0, 0)
|
59
|
+
self.main_layout.setSpacing(0)
|
60
|
+
|
61
|
+
self.toolbar = ModularToolBar(target_widget=self, orientation="vertical")
|
62
|
+
|
63
|
+
self.container = QWidget()
|
64
|
+
self.container.layout = QVBoxLayout(self.container)
|
65
|
+
self.container.layout.setContentsMargins(0, 0, 0, 0)
|
66
|
+
self.container.layout.setSpacing(0)
|
67
|
+
|
68
|
+
self.stack_widget = QStackedWidget()
|
69
|
+
self.stack_widget.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding)
|
70
|
+
self.stack_widget.setMinimumWidth(5)
|
71
|
+
|
72
|
+
if self._orientation == "left":
|
73
|
+
self.main_layout.addWidget(self.toolbar)
|
74
|
+
self.main_layout.addWidget(self.container)
|
75
|
+
else:
|
76
|
+
self.main_layout.addWidget(self.container)
|
77
|
+
self.main_layout.addWidget(self.toolbar)
|
78
|
+
|
79
|
+
self.container.layout.addWidget(self.stack_widget)
|
80
|
+
self.stack_widget.setMaximumWidth(self._panel_max_width)
|
81
|
+
|
82
|
+
else:
|
83
|
+
self.main_layout = QVBoxLayout(self)
|
84
|
+
self.main_layout.setContentsMargins(0, 0, 0, 0)
|
85
|
+
self.main_layout.setSpacing(0)
|
86
|
+
|
87
|
+
self.toolbar = ModularToolBar(target_widget=self, orientation="horizontal")
|
88
|
+
|
89
|
+
self.container = QWidget()
|
90
|
+
self.container.layout = QVBoxLayout(self.container)
|
91
|
+
self.container.layout.setContentsMargins(0, 0, 0, 0)
|
92
|
+
self.container.layout.setSpacing(0)
|
93
|
+
|
94
|
+
self.stack_widget = QStackedWidget()
|
95
|
+
self.stack_widget.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
|
96
|
+
self.stack_widget.setMinimumHeight(5)
|
97
|
+
|
98
|
+
if self._orientation == "top":
|
99
|
+
self.main_layout.addWidget(self.toolbar)
|
100
|
+
self.main_layout.addWidget(self.container)
|
101
|
+
else:
|
102
|
+
self.main_layout.addWidget(self.container)
|
103
|
+
self.main_layout.addWidget(self.toolbar)
|
104
|
+
|
105
|
+
self.container.layout.addWidget(self.stack_widget)
|
106
|
+
self.stack_widget.setMaximumHeight(self._panel_max_width)
|
107
|
+
|
108
|
+
if self._orientation in ("left", "right"):
|
109
|
+
self.menu_anim = QPropertyAnimation(self, b"panel_width")
|
110
|
+
else:
|
111
|
+
self.menu_anim = QPropertyAnimation(self, b"panel_height")
|
112
|
+
|
113
|
+
self.menu_anim.setDuration(self._animation_duration)
|
114
|
+
self.menu_anim.setEasingCurve(QEasingCurve.InOutQuad)
|
115
|
+
|
116
|
+
if self._orientation in ("left", "right"):
|
117
|
+
self.panel_width = 0
|
118
|
+
else:
|
119
|
+
self.panel_height = 0
|
120
|
+
|
121
|
+
@Property(int)
|
122
|
+
def panel_width(self):
|
123
|
+
"""
|
124
|
+
Get the panel width.
|
125
|
+
"""
|
126
|
+
return self._panel_width
|
127
|
+
|
128
|
+
@panel_width.setter
|
129
|
+
def panel_width(self, width: int):
|
130
|
+
"""
|
131
|
+
Set the panel width.
|
132
|
+
|
133
|
+
Args:
|
134
|
+
width(int): The width of the panel.
|
135
|
+
"""
|
136
|
+
self._panel_width = width
|
137
|
+
if self._orientation in ("left", "right"):
|
138
|
+
self.stack_widget.setFixedWidth(width)
|
139
|
+
|
140
|
+
@Property(int)
|
141
|
+
def panel_height(self):
|
142
|
+
"""
|
143
|
+
Get the panel height.
|
144
|
+
"""
|
145
|
+
return self._panel_height
|
146
|
+
|
147
|
+
@panel_height.setter
|
148
|
+
def panel_height(self, height: int):
|
149
|
+
"""
|
150
|
+
Set the panel height.
|
151
|
+
|
152
|
+
Args:
|
153
|
+
height(int): The height of the panel.
|
154
|
+
"""
|
155
|
+
self._panel_height = height
|
156
|
+
if self._orientation in ("top", "bottom"):
|
157
|
+
self.stack_widget.setFixedHeight(height)
|
158
|
+
|
159
|
+
@Property(int)
|
160
|
+
def panel_max_width(self):
|
161
|
+
"""
|
162
|
+
Get the maximum width of the panel.
|
163
|
+
"""
|
164
|
+
return self._panel_max_width
|
165
|
+
|
166
|
+
@panel_max_width.setter
|
167
|
+
def panel_max_width(self, size: int):
|
168
|
+
"""
|
169
|
+
Set the maximum width of the panel.
|
170
|
+
|
171
|
+
Args:
|
172
|
+
size(int): The maximum width of the panel.
|
173
|
+
"""
|
174
|
+
self._panel_max_width = size
|
175
|
+
if self._orientation in ("left", "right"):
|
176
|
+
self.stack_widget.setMaximumWidth(self._panel_max_width)
|
177
|
+
else:
|
178
|
+
self.stack_widget.setMaximumHeight(self._panel_max_width)
|
179
|
+
|
180
|
+
@Property(int)
|
181
|
+
def animation_duration(self):
|
182
|
+
"""
|
183
|
+
Get the duration of the animation.
|
184
|
+
"""
|
185
|
+
return self._animation_duration
|
186
|
+
|
187
|
+
@animation_duration.setter
|
188
|
+
def animation_duration(self, duration: int):
|
189
|
+
"""
|
190
|
+
Set the duration of the animation.
|
191
|
+
|
192
|
+
Args:
|
193
|
+
duration(int): The duration of the animation.
|
194
|
+
"""
|
195
|
+
self._animation_duration = duration
|
196
|
+
self.menu_anim.setDuration(duration)
|
197
|
+
|
198
|
+
@Property(bool)
|
199
|
+
def animations_enabled(self):
|
200
|
+
"""
|
201
|
+
Get the status of the animations.
|
202
|
+
"""
|
203
|
+
return self._animations_enabled
|
204
|
+
|
205
|
+
@animations_enabled.setter
|
206
|
+
def animations_enabled(self, enabled: bool):
|
207
|
+
"""
|
208
|
+
Set the status of the animations.
|
209
|
+
|
210
|
+
Args:
|
211
|
+
enabled(bool): The status of the animations.
|
212
|
+
"""
|
213
|
+
self._animations_enabled = enabled
|
214
|
+
|
215
|
+
def show_panel(self, idx: int):
|
216
|
+
"""
|
217
|
+
Show the side panel with animation and switch to idx.
|
218
|
+
|
219
|
+
Args:
|
220
|
+
idx(int): The index of the panel to show.
|
221
|
+
"""
|
222
|
+
self.stack_widget.setCurrentIndex(idx)
|
223
|
+
self.panel_visible = True
|
224
|
+
self.current_index = idx
|
225
|
+
|
226
|
+
if self._orientation in ("left", "right"):
|
227
|
+
start_val, end_val = 0, self._panel_max_width
|
228
|
+
else:
|
229
|
+
start_val, end_val = 0, self._panel_max_width
|
230
|
+
|
231
|
+
if self._animations_enabled:
|
232
|
+
self.menu_anim.stop()
|
233
|
+
self.menu_anim.setStartValue(start_val)
|
234
|
+
self.menu_anim.setEndValue(end_val)
|
235
|
+
self.menu_anim.start()
|
236
|
+
else:
|
237
|
+
if self._orientation in ("left", "right"):
|
238
|
+
self.panel_width = end_val
|
239
|
+
else:
|
240
|
+
self.panel_height = end_val
|
241
|
+
|
242
|
+
def hide_panel(self):
|
243
|
+
"""
|
244
|
+
Hide the side panel with animation.
|
245
|
+
"""
|
246
|
+
self.panel_visible = False
|
247
|
+
self.current_index = None
|
248
|
+
|
249
|
+
if self._orientation in ("left", "right"):
|
250
|
+
start_val, end_val = self._panel_max_width, 0
|
251
|
+
else:
|
252
|
+
start_val, end_val = self._panel_max_width, 0
|
253
|
+
|
254
|
+
if self._animations_enabled:
|
255
|
+
self.menu_anim.stop()
|
256
|
+
self.menu_anim.setStartValue(start_val)
|
257
|
+
self.menu_anim.setEndValue(end_val)
|
258
|
+
self.menu_anim.start()
|
259
|
+
else:
|
260
|
+
if self._orientation in ("left", "right"):
|
261
|
+
self.panel_width = end_val
|
262
|
+
else:
|
263
|
+
self.panel_height = end_val
|
264
|
+
|
265
|
+
def switch_to(self, idx: int):
|
266
|
+
"""
|
267
|
+
Switch to the specified index without animation.
|
268
|
+
|
269
|
+
Args:
|
270
|
+
idx(int): The index of the panel to switch to.
|
271
|
+
"""
|
272
|
+
if self.current_index != idx:
|
273
|
+
self.stack_widget.setCurrentIndex(idx)
|
274
|
+
self.current_index = idx
|
275
|
+
|
276
|
+
def add_menu(self, action_id: str, icon_name: str, tooltip: str, widget: QWidget, title: str):
|
277
|
+
"""
|
278
|
+
Add a menu to the side panel.
|
279
|
+
|
280
|
+
Args:
|
281
|
+
action_id(str): The ID of the action.
|
282
|
+
icon_name(str): The name of the icon.
|
283
|
+
tooltip(str): The tooltip for the action.
|
284
|
+
widget(QWidget): The widget to add to the panel.
|
285
|
+
title(str): The title of the panel.
|
286
|
+
"""
|
287
|
+
container_widget = QWidget()
|
288
|
+
container_layout = QVBoxLayout(container_widget)
|
289
|
+
container_widget.setStyleSheet("background-color: rgba(0,0,0,0);")
|
290
|
+
title_label = QLabel(f"<b>{title}</b>")
|
291
|
+
title_label.setStyleSheet("font-size: 16px;")
|
292
|
+
spacer = QSpacerItem(0, 0, QSizePolicy.Minimum, QSizePolicy.Expanding)
|
293
|
+
container_layout.addWidget(title_label)
|
294
|
+
container_layout.addWidget(widget)
|
295
|
+
container_layout.addItem(spacer)
|
296
|
+
container_layout.setContentsMargins(5, 5, 5, 5)
|
297
|
+
container_layout.setSpacing(5)
|
298
|
+
|
299
|
+
index = self.stack_widget.count()
|
300
|
+
self.stack_widget.addWidget(container_widget)
|
301
|
+
|
302
|
+
action = MaterialIconAction(icon_name=icon_name, tooltip=tooltip, checkable=True)
|
303
|
+
self.toolbar.add_action(action_id, action, target_widget=self)
|
304
|
+
|
305
|
+
def on_action_toggled(checked: bool):
|
306
|
+
if self.switching_actions:
|
307
|
+
return
|
308
|
+
|
309
|
+
if checked:
|
310
|
+
if self.current_action and self.current_action != action.action:
|
311
|
+
self.switching_actions = True
|
312
|
+
self.current_action.setChecked(False)
|
313
|
+
self.switching_actions = False
|
314
|
+
|
315
|
+
self.current_action = action.action
|
316
|
+
|
317
|
+
if not self.panel_visible:
|
318
|
+
self.show_panel(index)
|
319
|
+
else:
|
320
|
+
self.switch_to(index)
|
321
|
+
else:
|
322
|
+
if self.current_action == action.action:
|
323
|
+
self.current_action = None
|
324
|
+
self.hide_panel()
|
325
|
+
|
326
|
+
action.action.toggled.connect(on_action_toggled)
|
327
|
+
|
328
|
+
|
329
|
+
class ExampleApp(QMainWindow): # pragma: no cover
|
330
|
+
def __init__(self):
|
331
|
+
super().__init__()
|
332
|
+
self.setWindowTitle("Side Panel Example")
|
333
|
+
|
334
|
+
central_widget = QWidget()
|
335
|
+
self.setCentralWidget(central_widget)
|
336
|
+
|
337
|
+
self.side_panel = SidePanel(self, orientation="left")
|
338
|
+
|
339
|
+
self.layout = QHBoxLayout(central_widget)
|
340
|
+
|
341
|
+
self.layout.addWidget(self.side_panel)
|
342
|
+
self.plot = BECWaveformWidget()
|
343
|
+
self.layout.addWidget(self.plot)
|
344
|
+
self.add_side_menus()
|
345
|
+
|
346
|
+
def add_side_menus(self):
|
347
|
+
widget1 = QWidget()
|
348
|
+
widget1_layout = QVBoxLayout(widget1)
|
349
|
+
widget1_layout.addWidget(QLabel("This is Widget 1"))
|
350
|
+
self.side_panel.add_menu(
|
351
|
+
action_id="widget1",
|
352
|
+
icon_name="counter_1",
|
353
|
+
tooltip="Show Widget 1",
|
354
|
+
widget=widget1,
|
355
|
+
title="Widget 1 Panel",
|
356
|
+
)
|
357
|
+
|
358
|
+
widget2 = QWidget()
|
359
|
+
widget2_layout = QVBoxLayout(widget2)
|
360
|
+
widget2_layout.addWidget(QLabel("This is Widget 2"))
|
361
|
+
self.side_panel.add_menu(
|
362
|
+
action_id="widget2",
|
363
|
+
icon_name="counter_2",
|
364
|
+
tooltip="Show Widget 2",
|
365
|
+
widget=widget2,
|
366
|
+
title="Widget 2 Panel",
|
367
|
+
)
|
368
|
+
|
369
|
+
widget3 = QWidget()
|
370
|
+
widget3_layout = QVBoxLayout(widget3)
|
371
|
+
widget3_layout.addWidget(QLabel("This is Widget 3"))
|
372
|
+
self.side_panel.add_menu(
|
373
|
+
action_id="widget3",
|
374
|
+
icon_name="counter_3",
|
375
|
+
tooltip="Show Widget 3",
|
376
|
+
widget=widget3,
|
377
|
+
title="Widget 3 Panel",
|
378
|
+
)
|
379
|
+
|
380
|
+
|
381
|
+
if __name__ == "__main__": # pragma: no cover
|
382
|
+
app = QApplication(sys.argv)
|
383
|
+
window = ExampleApp()
|
384
|
+
window.resize(800, 600)
|
385
|
+
window.show()
|
386
|
+
sys.exit(app.exec())
|
@@ -93,17 +93,24 @@ def patch_designer(): # pragma: no cover
|
|
93
93
|
_extend_path_var("PATH", os.fspath(Path(sys._base_executable).parent), True)
|
94
94
|
else:
|
95
95
|
if sys.platform == "linux":
|
96
|
-
suffix = f"{sys.abiflags}.so"
|
97
96
|
env_var = "LD_PRELOAD"
|
97
|
+
current_pid = os.getpid()
|
98
|
+
with open(f"/proc/{current_pid}/maps", "rt") as f:
|
99
|
+
for line in f:
|
100
|
+
if "libpython" in line:
|
101
|
+
lib_path = line.split()[-1]
|
102
|
+
os.environ[env_var] = lib_path
|
103
|
+
break
|
104
|
+
|
98
105
|
elif sys.platform == "darwin":
|
99
106
|
suffix = ".dylib"
|
100
107
|
env_var = "DYLD_INSERT_LIBRARIES"
|
108
|
+
version = f"{major_version}.{minor_version}"
|
109
|
+
library_name = f"libpython{version}{suffix}"
|
110
|
+
lib_path = str(Path(sysconfig.get_config_var("LIBDIR")) / library_name)
|
111
|
+
os.environ[env_var] = lib_path
|
101
112
|
else:
|
102
113
|
raise RuntimeError(f"Unsupported platform: {sys.platform}")
|
103
|
-
version = f"{major_version}.{minor_version}"
|
104
|
-
library_name = f"libpython{version}{suffix}"
|
105
|
-
lib_path = str(Path(sysconfig.get_config_var("LIBDIR")) / library_name)
|
106
|
-
os.environ[env_var] = lib_path
|
107
114
|
|
108
115
|
if is_pyenv_python() or is_virtual_env():
|
109
116
|
# append all editable packages to the PYTHONPATH
|
@@ -2,11 +2,11 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=bAWGX_NR9rQZmv_bmyLXkEMRreWp0JzVNpsNTxk0NwE,8637
|
3
3
|
.pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256=
|
5
|
+
CHANGELOG.md,sha256=1T0umYGmnO8jBPR9noMRoyZfbNXUqcCo6ut1tdKJuyQ,7702
|
6
6
|
LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=Ai9I6xl-hhKbLQ17bEo4I-J4OAfBA-Nk7-cLTUpgogM,1308
|
8
8
|
README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=PKETqZSjL7GI61B8vjRVywLX7CH668vUdLuKrcGu6wk,2586
|
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
|
@@ -51,12 +51,13 @@ bec_widgets/qt_utils/palette_viewer.py,sha256=--B0x7aE7bniHIeuuLY_pH8yBDrTTXaE0I
|
|
51
51
|
bec_widgets/qt_utils/redis_message_waiter.py,sha256=fvL_QgC0cTDv_FPJdRyp5AKjf401EJU4z3r38p47ydY,1745
|
52
52
|
bec_widgets/qt_utils/round_frame.py,sha256=Ba_sTzYB_vYDepBBMPPqU8XDwKOAiU6ClZ3xUqiveK0,5734
|
53
53
|
bec_widgets/qt_utils/settings_dialog.py,sha256=NhtzTer_xzlB2lLLrGklkI1QYLJEWQpJoZbCz4o5daI,3645
|
54
|
+
bec_widgets/qt_utils/side_panel.py,sha256=5XtHIGfEJJj5m7cvkm-Vaxzz1TQogwglrmBaVcmcngY,12332
|
54
55
|
bec_widgets/qt_utils/toolbar.py,sha256=RcWoWjibhlpL26Bnbft-uWA1q2WCglJRnO6U3hGMBw8,13277
|
55
56
|
bec_widgets/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
56
57
|
bec_widgets/tests/utils.py,sha256=D1v3JLzzbnX3HXBQCjoFlNz5cYhjqrRkFcjx3yptMJA,6687
|
57
58
|
bec_widgets/utils/__init__.py,sha256=1930ji1Jj6dVuY81Wd2kYBhHYNV-2R0bN_L4o9zBj1U,533
|
58
59
|
bec_widgets/utils/bec_connector.py,sha256=g40KPxhfuSHLlAa6dyO1PtC-9cQpN8ZGgn_IAEU_xD4,10070
|
59
|
-
bec_widgets/utils/bec_designer.py,sha256=
|
60
|
+
bec_widgets/utils/bec_designer.py,sha256=XBy38NbNMoRDpvRx5lGP2XnJNG34YKZ7I-ARFkn-gzs,5017
|
60
61
|
bec_widgets/utils/bec_dispatcher.py,sha256=OFmkx9vOz4pA4Sdc14QreyDZ870QYskJ4B5daVVeYg4,6325
|
61
62
|
bec_widgets/utils/bec_signal_proxy.py,sha256=PKJ7v8pKrAaqA9XNDMZZBlhVtEInX-ae6_0m2cQhiEw,2107
|
62
63
|
bec_widgets/utils/bec_table.py,sha256=nA2b8ukSeUfquFMAxGrUVOqdrzMoDYD6O_4EYbOG2zk,717
|
@@ -314,8 +315,8 @@ bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.py,sha256=Z
|
|
314
315
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button.pyproject,sha256=Lbi9zb6HNlIq14k6hlzR-oz6PIFShBuF7QxE6d87d64,34
|
315
316
|
bec_widgets/widgets/utility/visual/dark_mode_button/dark_mode_button_plugin.py,sha256=CzChz2SSETYsR8-36meqWnsXCT-FIy_J_xeU5coWDY8,1350
|
316
317
|
bec_widgets/widgets/utility/visual/dark_mode_button/register_dark_mode_button.py,sha256=rMpZ1CaoucwobgPj1FuKTnt07W82bV1GaSYdoqcdMb8,521
|
317
|
-
bec_widgets-1.
|
318
|
-
bec_widgets-1.
|
319
|
-
bec_widgets-1.
|
320
|
-
bec_widgets-1.
|
321
|
-
bec_widgets-1.
|
318
|
+
bec_widgets-1.9.1.dist-info/METADATA,sha256=Ai9I6xl-hhKbLQ17bEo4I-J4OAfBA-Nk7-cLTUpgogM,1308
|
319
|
+
bec_widgets-1.9.1.dist-info/WHEEL,sha256=C2FUgwZgiLbznR-k0b_5k3Ai_1aASOXDss3lzCUsUug,87
|
320
|
+
bec_widgets-1.9.1.dist-info/entry_points.txt,sha256=dItMzmwA1wizJ1Itx15qnfJ0ZzKVYFLVJ1voxT7K7D4,214
|
321
|
+
bec_widgets-1.9.1.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
322
|
+
bec_widgets-1.9.1.dist-info/RECORD,,
|
pyproject.toml
CHANGED
File without changes
|
File without changes
|
File without changes
|