bec-widgets 0.94.6__py3-none-any.whl → 0.95.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 +36 -40
- PKG-INFO +1 -1
- bec_widgets/cli/client.py +19 -0
- bec_widgets/cli/client_utils.py +1 -0
- bec_widgets/cli/server.py +5 -5
- bec_widgets/widgets/device_browser/__init__.py +0 -0
- bec_widgets/widgets/device_browser/device_browser.py +107 -0
- bec_widgets/widgets/device_browser/device_browser.pyproject +1 -0
- bec_widgets/widgets/device_browser/device_browser.ui +44 -0
- bec_widgets/widgets/device_browser/device_browser_plugin.py +54 -0
- bec_widgets/widgets/device_browser/device_item/__init__.py +1 -0
- bec_widgets/widgets/device_browser/device_item/device_item.py +53 -0
- bec_widgets/widgets/device_browser/register_device_browser.py +15 -0
- {bec_widgets-0.94.6.dist-info → bec_widgets-0.95.0.dist-info}/METADATA +1 -1
- {bec_widgets-0.94.6.dist-info → bec_widgets-0.95.0.dist-info}/RECORD +75 -35
- docs/_static/custom.css +10 -10
- docs/assets/widget_screenshots/buttons.png +0 -0
- docs/assets/widget_screenshots/device_box.png +0 -0
- docs/assets/widget_screenshots/device_browser.png +0 -0
- docs/assets/widget_screenshots/device_inputs.png +0 -0
- docs/assets/widget_screenshots/dock_area.png +0 -0
- docs/assets/widget_screenshots/figure.png +0 -0
- docs/assets/widget_screenshots/image_widget.png +0 -0
- docs/assets/widget_screenshots/motor_map_widget.png +0 -0
- docs/assets/widget_screenshots/position_indicator.png +0 -0
- docs/assets/widget_screenshots/queue.png +0 -0
- docs/assets/widget_screenshots/ring_progress_bar.png +0 -0
- docs/assets/widget_screenshots/scan_controller.png +0 -0
- docs/assets/widget_screenshots/spinner.gif +0 -0
- docs/assets/widget_screenshots/status_box.png +0 -0
- docs/assets/widget_screenshots/text_box.png +0 -0
- docs/assets/widget_screenshots/toggle.png +0 -0
- docs/assets/widget_screenshots/waveform_widget.png +0 -0
- docs/assets/widget_screenshots/website.png +0 -0
- docs/conf.py +1 -0
- docs/developer/developer.md +2 -0
- docs/index.md +4 -0
- docs/requirements.txt +1 -0
- docs/user/user.md +4 -0
- docs/user/widgets/bec_figure/bec_figure.md +105 -0
- docs/user/widgets/bec_status_box/bec_status_box.md +38 -0
- docs/user/widgets/buttons/buttons.md +50 -0
- docs/user/widgets/device_browser/device_browser.md +36 -0
- docs/user/widgets/device_browser/device_browser.png +0 -0
- docs/user/widgets/device_input/device_input.md +100 -0
- docs/user/widgets/dock_area/BECDockArea.png +0 -0
- docs/user/widgets/dock_area/bec_dock_area.md +107 -0
- docs/user/widgets/image/image_widget.md +84 -0
- docs/user/widgets/motor_map/motor_map.md +80 -0
- docs/user/widgets/position_indicator/position_indicator.md +76 -0
- docs/user/widgets/positioner_box/positioner_box.md +63 -0
- docs/user/widgets/progress_bar/ring_progress_bar.md +103 -0
- docs/user/widgets/queue/queue.md +41 -0
- docs/user/widgets/scan_control/scan_control.md +46 -0
- docs/user/widgets/spinner/spinner.md +75 -0
- docs/user/widgets/text_box/text_box.md +74 -0
- docs/user/widgets/toggle/toggle.md +66 -0
- docs/user/widgets/waveform/waveform_widget.md +132 -0
- docs/user/widgets/website/website.md +69 -0
- docs/user/widgets/widgets.md +212 -12
- pyproject.toml +1 -1
- tests/unit_tests/client_mocks.py +14 -0
- tests/unit_tests/test_device_browser.py +83 -0
- docs/user/widgets/bec_figure.md +0 -146
- docs/user/widgets/bec_status_box.md +0 -30
- docs/user/widgets/buttons.md +0 -37
- docs/user/widgets/ring_progress_bar.md +0 -54
- docs/user/widgets/scan_control.md +0 -35
- docs/user/widgets/text_box.md +0 -33
- docs/user/widgets/website.md +0 -21
- {bec_widgets-0.94.6.dist-info → bec_widgets-0.95.0.dist-info}/WHEEL +0 -0
- {bec_widgets-0.94.6.dist-info → bec_widgets-0.95.0.dist-info}/entry_points.txt +0 -0
- {bec_widgets-0.94.6.dist-info → bec_widgets-0.95.0.dist-info}/licenses/LICENSE +0 -0
- /docs/user/widgets/{BECFigure.png → bec_figure/BECFigure.png} +0 -0
- /docs/user/widgets/{bec_status_box.gif → bec_status_box/bec_status_box.gif} +0 -0
- /docs/user/widgets/{image_plot.gif → image/image_plot.gif} +0 -0
- /docs/user/widgets/{motor.gif → motor_map/motor.gif} +0 -0
- /docs/user/widgets/{progress_bar.gif → progress_bar/progress_bar.gif} +0 -0
- /docs/user/widgets/{scan_control.gif → scan_control/scan_control.gif} +0 -0
- /docs/user/widgets/{bec_figure_dap.gif → waveform/bec_figure_dap.gif} +0 -0
- /docs/user/widgets/{scatter_2D.gif → waveform/scatter_2D.gif} +0 -0
- /docs/user/widgets/{w1D.gif → waveform/w1D.gif} +0 -0
CHANGELOG.md
CHANGED
@@ -1,5 +1,41 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## v0.95.0 (2024-08-21)
|
4
|
+
|
5
|
+
### Documentation
|
6
|
+
|
7
|
+
* docs(device_browser): added user docs ([`2c31cc9`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/2c31cc90ae751f14a653cbbdd6c353d6359aaafe))
|
8
|
+
|
9
|
+
* docs(user): widget gallery with documentation added ([`7357f3d`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7357f3d2a189f9f04954a027f39ce07c394d57ec))
|
10
|
+
|
11
|
+
* docs: added sphinx-inline-tabs as sphinx dependency ([`e9ecd26`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e9ecd268c602ea9572df0e8d508e49ee62d0c170))
|
12
|
+
|
13
|
+
* docs(cards): changed index cards to custom css class instead of overwriting the default sd-card theme ([`91ba30e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/91ba30e8d054a9c7f6c6d98b21113a5d0b1bbbbb))
|
14
|
+
|
15
|
+
### Feature
|
16
|
+
|
17
|
+
* feat(cli): added device_browser to cli ([`196504b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/196504b533367a899c19b88af4ccd5b39dc46aac))
|
18
|
+
|
19
|
+
* feat(widgets): added device_browser widget ([`73f5a2f`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/73f5a2f085b289ac18fa8a918b6ad7cfed595fb4))
|
20
|
+
|
21
|
+
### Fix
|
22
|
+
|
23
|
+
* fix(device_browser): fixed plugin assignment for designer ([`6500393`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/650039303aae9bbec62c676285938416fff146ce))
|
24
|
+
|
25
|
+
### Refactor
|
26
|
+
|
27
|
+
* refactor(docs): review response ([`4790afd`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/4790afde3d61fc9beb073c2775c339d4f80779e3))
|
28
|
+
|
29
|
+
### Test
|
30
|
+
|
31
|
+
* test: added test for device browser ([`e870e5b`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/e870e5ba083c61df581c9c0305adabe72967f997))
|
32
|
+
|
33
|
+
## v0.94.7 (2024-08-20)
|
34
|
+
|
35
|
+
### Fix
|
36
|
+
|
37
|
+
* fix: formatting of stdout, stderr captured text for logger ([`939f834`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/939f834a26ddbac0bdead0b60b1cdf52014f182f))
|
38
|
+
|
3
39
|
## v0.94.6 (2024-08-14)
|
4
40
|
|
5
41
|
### Fix
|
@@ -115,43 +151,3 @@ Terminating client connections has to be done at the application level ([`198c1d
|
|
115
151
|
* test: ensure all toplevelwidgets are closed ([`f9e5897`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/f9e58979009cf632feea529700ad191401dd7eb8))
|
116
152
|
|
117
153
|
## v0.93.2 (2024-08-07)
|
118
|
-
|
119
|
-
### Fix
|
120
|
-
|
121
|
-
* fix(scan_group_box): Scan Spinboxes limits increased to max allowed values; setting dialog for step size and decimal precision for ScanDoubleSpinBox on right click ([`a372925`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/a372925fffa787c686198ae7cb3f9c15b459c109))
|
122
|
-
|
123
|
-
## v0.93.1 (2024-08-06)
|
124
|
-
|
125
|
-
### Documentation
|
126
|
-
|
127
|
-
* docs: added video tutorial section with BSEG YT video ([`302ae90`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/302ae90139f6a88e2401fe29fe312387486e27a9))
|
128
|
-
|
129
|
-
### Fix
|
130
|
-
|
131
|
-
* fix(dock): docks have more recognizable red icon for closing docks ([`af86860`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/af86860bf35474805fb1a7bc3725cf8835ed4cc7))
|
132
|
-
|
133
|
-
## v0.93.0 (2024-08-05)
|
134
|
-
|
135
|
-
### Feature
|
136
|
-
|
137
|
-
* feat(themes): moved themes to bec_qthemes
|
138
|
-
|
139
|
-
This reverts commit fd6ae91993a23a7b8dbb2cf3c4b7c3eda6d2b0f6 ([`5aad401`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/5aad401ef8774c7330784f72cd3b9d8c253e2b6a))
|
140
|
-
|
141
|
-
## v0.92.5 (2024-08-05)
|
142
|
-
|
143
|
-
### Fix
|
144
|
-
|
145
|
-
* fix(spinner): stop timer on close event ([`30fef92`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/30fef929cf6fb4b73f48151c92a0ee54c734031d))
|
146
|
-
|
147
|
-
* fix(status_box): fix cleanup of status box ([`1f30dd7`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/1f30dd73a9c1e3135087a5eef92c7329f54a604e))
|
148
|
-
|
149
|
-
### Refactor
|
150
|
-
|
151
|
-
* refactor(queue): refactored bec queue to inherit only from qwidget ([`7616ca0`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/7616ca0e145e233ccb48029a8c0b54b54b5b4194))
|
152
|
-
|
153
|
-
### Test
|
154
|
-
|
155
|
-
* test: register all widgets with qtbot and close them ([`73cd11e`](https://gitlab.psi.ch/bec/bec_widgets/-/commit/73cd11e47277e4437554b785a9551b28a572094f))
|
156
|
-
|
157
|
-
## v0.92.4 (2024-07-31)
|
PKG-INFO
CHANGED
bec_widgets/cli/client.py
CHANGED
@@ -21,6 +21,7 @@ class Widgets(str, enum.Enum):
|
|
21
21
|
BECQueue = "BECQueue"
|
22
22
|
BECStatusBox = "BECStatusBox"
|
23
23
|
BECWaveformWidget = "BECWaveformWidget"
|
24
|
+
DeviceBrowser = "DeviceBrowser"
|
24
25
|
DeviceComboBox = "DeviceComboBox"
|
25
26
|
DeviceLineEdit = "DeviceLineEdit"
|
26
27
|
PositionerBox = "PositionerBox"
|
@@ -2288,6 +2289,24 @@ class BECWaveformWidget(RPCBase):
|
|
2288
2289
|
"""
|
2289
2290
|
|
2290
2291
|
|
2292
|
+
class DeviceBrowser(RPCBase):
|
2293
|
+
@property
|
2294
|
+
@rpc_call
|
2295
|
+
def _config_dict(self) -> "dict":
|
2296
|
+
"""
|
2297
|
+
Get the configuration of the widget.
|
2298
|
+
|
2299
|
+
Returns:
|
2300
|
+
dict: The configuration of the widget.
|
2301
|
+
"""
|
2302
|
+
|
2303
|
+
@rpc_call
|
2304
|
+
def _get_all_rpc(self) -> "dict":
|
2305
|
+
"""
|
2306
|
+
Get all registered RPC objects.
|
2307
|
+
"""
|
2308
|
+
|
2309
|
+
|
2291
2310
|
class DeviceComboBox(RPCBase):
|
2292
2311
|
@property
|
2293
2312
|
@rpc_call
|
bec_widgets/cli/client_utils.py
CHANGED
@@ -100,6 +100,7 @@ def _start_plot_process(gui_id: str, gui_class: type, config: dict | str, logger
|
|
100
100
|
|
101
101
|
env_dict = os.environ.copy()
|
102
102
|
env_dict["PYTHONUNBUFFERED"] = "1"
|
103
|
+
|
103
104
|
if logger is None:
|
104
105
|
stdout_redirect = subprocess.DEVNULL
|
105
106
|
stderr_redirect = subprocess.DEVNULL
|
bec_widgets/cli/server.py
CHANGED
@@ -130,15 +130,15 @@ class BECWidgetsCLIServer:
|
|
130
130
|
class SimpleFileLikeFromLogOutputFunc:
|
131
131
|
def __init__(self, log_func):
|
132
132
|
self._log_func = log_func
|
133
|
+
self._buffer = []
|
133
134
|
|
134
135
|
def write(self, buffer):
|
135
|
-
|
136
|
-
line = line.rstrip()
|
137
|
-
if line:
|
138
|
-
self._log_func(line)
|
136
|
+
self._buffer.append(buffer)
|
139
137
|
|
140
138
|
def flush(self):
|
141
|
-
|
139
|
+
lines, _, remaining = "".join(self._buffer).rpartition("\n")
|
140
|
+
self._log_func(lines)
|
141
|
+
self._buffer = [remaining]
|
142
142
|
|
143
143
|
def close(self):
|
144
144
|
return
|
File without changes
|
@@ -0,0 +1,107 @@
|
|
1
|
+
import os
|
2
|
+
import re
|
3
|
+
from typing import Optional
|
4
|
+
|
5
|
+
from bec_lib.callback_handler import EventType
|
6
|
+
from pyqtgraph import SignalProxy
|
7
|
+
from qtpy.QtCore import Signal, Slot
|
8
|
+
from qtpy.QtWidgets import QLineEdit, QListWidgetItem, QVBoxLayout, QWidget
|
9
|
+
|
10
|
+
from bec_widgets.utils.bec_widget import BECWidget
|
11
|
+
from bec_widgets.utils.ui_loader import UILoader
|
12
|
+
from bec_widgets.widgets.device_browser.device_item import DeviceItem
|
13
|
+
|
14
|
+
|
15
|
+
class DeviceBrowser(BECWidget, QWidget):
|
16
|
+
device_update: Signal = Signal()
|
17
|
+
|
18
|
+
def __init__(
|
19
|
+
self,
|
20
|
+
parent: Optional[QWidget] = None,
|
21
|
+
config=None,
|
22
|
+
client=None,
|
23
|
+
gui_id: Optional[str] = None,
|
24
|
+
) -> None:
|
25
|
+
super().__init__(client=client, config=config, gui_id=gui_id)
|
26
|
+
QWidget.__init__(self, parent)
|
27
|
+
|
28
|
+
self.get_bec_shortcuts()
|
29
|
+
self.ui = None
|
30
|
+
self.ini_ui()
|
31
|
+
|
32
|
+
self.proxy_device_update = SignalProxy(
|
33
|
+
self.ui.filter_input.textChanged, rateLimit=500, slot=self.update_device_list
|
34
|
+
)
|
35
|
+
self.bec_dispatcher.client.callbacks.register(
|
36
|
+
EventType.DEVICE_UPDATE, self.on_device_update
|
37
|
+
)
|
38
|
+
self.device_update.connect(self.update_device_list)
|
39
|
+
|
40
|
+
self.update_device_list()
|
41
|
+
|
42
|
+
def ini_ui(self) -> None:
|
43
|
+
"""
|
44
|
+
Initialize the UI by loading the UI file and setting the layout.
|
45
|
+
"""
|
46
|
+
layout = QVBoxLayout()
|
47
|
+
layout.setContentsMargins(0, 0, 0, 0)
|
48
|
+
|
49
|
+
ui_file_path = os.path.join(os.path.dirname(__file__), "device_browser.ui")
|
50
|
+
self.ui = UILoader(self).loader(ui_file_path)
|
51
|
+
layout.addWidget(self.ui)
|
52
|
+
self.setLayout(layout)
|
53
|
+
|
54
|
+
def on_device_update(self, action: str, content: dict) -> None:
|
55
|
+
"""
|
56
|
+
Callback for device update events. Triggers the device_update signal.
|
57
|
+
|
58
|
+
Args:
|
59
|
+
action (str): The action that triggered the event.
|
60
|
+
content (dict): The content of the config update.
|
61
|
+
"""
|
62
|
+
if action in ["add", "remove", "reload"]:
|
63
|
+
self.device_update.emit()
|
64
|
+
|
65
|
+
@Slot()
|
66
|
+
def update_device_list(self) -> None:
|
67
|
+
"""
|
68
|
+
Update the device list based on the filter input.
|
69
|
+
There are two ways to trigger this function:
|
70
|
+
1. By changing the text in the filter input.
|
71
|
+
2. By emitting the device_update signal.
|
72
|
+
|
73
|
+
Either way, the function will filter the devices based on the filter input text and update the device list.
|
74
|
+
"""
|
75
|
+
filter_text = self.ui.filter_input.text()
|
76
|
+
try:
|
77
|
+
regex = re.compile(filter_text, re.IGNORECASE)
|
78
|
+
except re.error:
|
79
|
+
regex = None # Invalid regex, disable filtering
|
80
|
+
|
81
|
+
dev_list = self.ui.device_list
|
82
|
+
dev_list.clear()
|
83
|
+
for device in self.dev:
|
84
|
+
if regex is None or regex.search(device):
|
85
|
+
item = QListWidgetItem(dev_list)
|
86
|
+
device_item = DeviceItem(device)
|
87
|
+
|
88
|
+
# pylint: disable=protected-access
|
89
|
+
tooltip = self.dev[device]._config.get("description", "")
|
90
|
+
device_item.setToolTip(tooltip)
|
91
|
+
item.setSizeHint(device_item.sizeHint())
|
92
|
+
dev_list.setItemWidget(item, device_item)
|
93
|
+
dev_list.addItem(item)
|
94
|
+
|
95
|
+
|
96
|
+
if __name__ == "__main__": # pragma: no cover
|
97
|
+
import sys
|
98
|
+
|
99
|
+
from qtpy.QtWidgets import QApplication
|
100
|
+
|
101
|
+
from bec_widgets.utils.colors import apply_theme
|
102
|
+
|
103
|
+
app = QApplication(sys.argv)
|
104
|
+
apply_theme("light")
|
105
|
+
widget = DeviceBrowser()
|
106
|
+
widget.show()
|
107
|
+
sys.exit(app.exec_())
|
@@ -0,0 +1 @@
|
|
1
|
+
{'files': ['device_browser.py']}
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<ui version="4.0">
|
3
|
+
<class>Form</class>
|
4
|
+
<widget class="QWidget" name="Form">
|
5
|
+
<property name="geometry">
|
6
|
+
<rect>
|
7
|
+
<x>0</x>
|
8
|
+
<y>0</y>
|
9
|
+
<width>406</width>
|
10
|
+
<height>500</height>
|
11
|
+
</rect>
|
12
|
+
</property>
|
13
|
+
<property name="windowTitle">
|
14
|
+
<string>Form</string>
|
15
|
+
</property>
|
16
|
+
<layout class="QVBoxLayout" name="verticalLayout">
|
17
|
+
<item>
|
18
|
+
<widget class="QGroupBox" name="browser_group_box">
|
19
|
+
<property name="title">
|
20
|
+
<string>Device Browser</string>
|
21
|
+
</property>
|
22
|
+
<layout class="QVBoxLayout" name="verticalLayout_2">
|
23
|
+
<item>
|
24
|
+
<layout class="QHBoxLayout" name="filter_layout">
|
25
|
+
<item>
|
26
|
+
<widget class="QLineEdit" name="filter_input">
|
27
|
+
<property name="placeholderText">
|
28
|
+
<string>Filter</string>
|
29
|
+
</property>
|
30
|
+
</widget>
|
31
|
+
</item>
|
32
|
+
</layout>
|
33
|
+
</item>
|
34
|
+
<item>
|
35
|
+
<widget class="QListWidget" name="device_list"/>
|
36
|
+
</item>
|
37
|
+
</layout>
|
38
|
+
</widget>
|
39
|
+
</item>
|
40
|
+
</layout>
|
41
|
+
</widget>
|
42
|
+
<resources/>
|
43
|
+
<connections/>
|
44
|
+
</ui>
|
@@ -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
|
+
from qtpy.QtGui import QIcon
|
6
|
+
|
7
|
+
from bec_widgets.widgets.device_browser.device_browser import DeviceBrowser
|
8
|
+
|
9
|
+
DOM_XML = """
|
10
|
+
<ui language='c++'>
|
11
|
+
<widget class='DeviceBrowser' name='device_browser'>
|
12
|
+
</widget>
|
13
|
+
</ui>
|
14
|
+
"""
|
15
|
+
|
16
|
+
|
17
|
+
class DeviceBrowserPlugin(QDesignerCustomWidgetInterface): # pragma: no cover
|
18
|
+
def __init__(self):
|
19
|
+
super().__init__()
|
20
|
+
self._form_editor = None
|
21
|
+
|
22
|
+
def createWidget(self, parent):
|
23
|
+
t = DeviceBrowser(parent)
|
24
|
+
return t
|
25
|
+
|
26
|
+
def domXml(self):
|
27
|
+
return DOM_XML
|
28
|
+
|
29
|
+
def group(self):
|
30
|
+
return "BEC Services"
|
31
|
+
|
32
|
+
def icon(self):
|
33
|
+
return QIcon()
|
34
|
+
|
35
|
+
def includeFile(self):
|
36
|
+
return "device_browser"
|
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 "DeviceBrowser"
|
49
|
+
|
50
|
+
def toolTip(self):
|
51
|
+
return "DeviceBrowser"
|
52
|
+
|
53
|
+
def whatsThis(self):
|
54
|
+
return self.toolTip()
|
@@ -0,0 +1 @@
|
|
1
|
+
from .device_item import DeviceItem
|
@@ -0,0 +1,53 @@
|
|
1
|
+
from __future__ import annotations
|
2
|
+
|
3
|
+
from typing import TYPE_CHECKING
|
4
|
+
|
5
|
+
from qtpy.QtCore import QMimeData, Qt
|
6
|
+
from qtpy.QtGui import QDrag
|
7
|
+
from qtpy.QtWidgets import QHBoxLayout, QLabel, QWidget
|
8
|
+
|
9
|
+
if TYPE_CHECKING:
|
10
|
+
from qtpy.QtGui import QMouseEvent
|
11
|
+
|
12
|
+
|
13
|
+
class DeviceItem(QWidget):
|
14
|
+
def __init__(self, device: str) -> None:
|
15
|
+
super().__init__()
|
16
|
+
self.device = device
|
17
|
+
layout = QHBoxLayout()
|
18
|
+
layout.setContentsMargins(10, 2, 10, 2)
|
19
|
+
self.label = QLabel(device)
|
20
|
+
layout.addWidget(self.label)
|
21
|
+
self.setLayout(layout)
|
22
|
+
|
23
|
+
self.setStyleSheet(
|
24
|
+
"""
|
25
|
+
border: 1px solid #ddd;
|
26
|
+
border-radius: 5px;
|
27
|
+
padding: 10px;
|
28
|
+
"""
|
29
|
+
)
|
30
|
+
|
31
|
+
def mousePressEvent(self, event: QMouseEvent) -> None:
|
32
|
+
if event.button() == Qt.LeftButton:
|
33
|
+
drag = QDrag(self)
|
34
|
+
mime_data = QMimeData()
|
35
|
+
mime_data.setText(self.device)
|
36
|
+
drag.setMimeData(mime_data)
|
37
|
+
drag.exec_(Qt.MoveAction)
|
38
|
+
|
39
|
+
def mouseDoubleClickEvent(self, event: QMouseEvent) -> None:
|
40
|
+
print("Double Clicked")
|
41
|
+
# TODO: Implement double click action for opening the device properties dialog
|
42
|
+
return super().mouseDoubleClickEvent(event)
|
43
|
+
|
44
|
+
|
45
|
+
if __name__ == "__main__": # pragma: no cover
|
46
|
+
import sys
|
47
|
+
|
48
|
+
from qtpy.QtWidgets import QApplication
|
49
|
+
|
50
|
+
app = QApplication(sys.argv)
|
51
|
+
widget = DeviceItem("Device")
|
52
|
+
widget.show()
|
53
|
+
sys.exit(app.exec_())
|
@@ -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.device_browser.device_browser_plugin import DeviceBrowserPlugin
|
10
|
+
|
11
|
+
QPyDesignerCustomWidgetCollection.addCustomWidget(DeviceBrowserPlugin())
|
12
|
+
|
13
|
+
|
14
|
+
if __name__ == "__main__": # pragma: no cover
|
15
|
+
main()
|
@@ -2,11 +2,11 @@
|
|
2
2
|
.gitlab-ci.yml,sha256=BtKhZI3dhK09En1BfpglYi-ZJwG6ZdC-iJr7kXFVfCg,8346
|
3
3
|
.pylintrc,sha256=eeY8YwSI74oFfq6IYIbCqnx3Vk8ZncKaatv96n_Y8Rs,18544
|
4
4
|
.readthedocs.yaml,sha256=aSOc277LqXcsTI6lgvm_JY80lMlr69GbPKgivua2cS0,603
|
5
|
-
CHANGELOG.md,sha256=
|
5
|
+
CHANGELOG.md,sha256=P1nCtnUL_FbmH_Zs0Fgdj9koB4czJbLpUghYkjZ_ia0,6774
|
6
6
|
LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
7
|
-
PKG-INFO,sha256=
|
7
|
+
PKG-INFO,sha256=RN9pJSz3DeE3sqmpUsCsmEqKPkzUaCHOZ3m0xoeD7ks,1325
|
8
8
|
README.md,sha256=Od69x-RS85Hph0-WwWACwal4yUd67XkEn4APEfHhHFw,2649
|
9
|
-
pyproject.toml,sha256=
|
9
|
+
pyproject.toml,sha256=rk3vWwBi2RVRVZP9ssBKmwEnoM8PE4I0_fgUgVtrOuU,2416
|
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
|
@@ -82,12 +82,12 @@ bec_widgets/assets/toolbar_icons/transform.svg,sha256=Fgug9wCi1FONy08nssEvnoDDDB
|
|
82
82
|
bec_widgets/assets/toolbar_icons/waveform.svg,sha256=darXWaIww4HEu9skFUd8Vs1NSAgUo1d37xBNr6DX-bM,231
|
83
83
|
bec_widgets/cli/__init__.py,sha256=d0Q6Fn44e7wFfLabDOBxpcJ1DPKWlFunGYDUBmO-4hA,22
|
84
84
|
bec_widgets/cli/auto_updates.py,sha256=DwzRChcFIWPH2kCYvp8H7dXvyYSKGYv6LwCmK2sDR2E,5676
|
85
|
-
bec_widgets/cli/client.py,sha256=
|
86
|
-
bec_widgets/cli/client_utils.py,sha256=
|
85
|
+
bec_widgets/cli/client.py,sha256=sqWc80V5RZH3gJdQQnGSDY3LR3ypox8orOkDE1PuI7Q,76650
|
86
|
+
bec_widgets/cli/client_utils.py,sha256=l35LtTkD7PdvVCckjMU8-y6f5a5pp1u6cFPpD-Dkvow,11713
|
87
87
|
bec_widgets/cli/generate_cli.py,sha256=Ea5px9KblUlcGg-1JbJBTIU7laGg2n8PM7Efw9WVVzM,5889
|
88
88
|
bec_widgets/cli/rpc_register.py,sha256=QxXUZu5XNg00Yf5O3UHWOXg3-f_pzKjjoZYMOa-MOJc,2216
|
89
89
|
bec_widgets/cli/rpc_wigdet_handler.py,sha256=6kQng2DyS6rhLJqSJ7xa0kdgSxp-35A2upcf833dJRE,1483
|
90
|
-
bec_widgets/cli/server.py,sha256=
|
90
|
+
bec_widgets/cli/server.py,sha256=I3gZ5xwygEOnL4ga3zOoD3jRUXNjPRop4u7a0emfejs,7921
|
91
91
|
bec_widgets/examples/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
92
92
|
bec_widgets/examples/general_app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
93
93
|
bec_widgets/examples/general_app/general_app.py,sha256=Ks9CKtIQIFOzKosh204zVg1ltSnp07LDqkwoVAaCd9k,3046
|
@@ -154,6 +154,14 @@ bec_widgets/widgets/colormap_selector/colormap_selector.pyproject,sha256=lHl9qml
|
|
154
154
|
bec_widgets/widgets/colormap_selector/colormap_selector_plugin.py,sha256=NWTldO9XMyyOVL0No-Bmr-tvWrinmU7LkDxB5LkIQtA,1416
|
155
155
|
bec_widgets/widgets/colormap_selector/register_colormap_selector.py,sha256=bfw7RWmTmMLTLxGT-izSwcGtxGLKvL3jdivJw2z8oN4,512
|
156
156
|
bec_widgets/widgets/console/console.py,sha256=NG0cBuqqPX4hC-sHhk_UEkT-nHhhN9Y7karJITPLzyo,17864
|
157
|
+
bec_widgets/widgets/device_browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
158
|
+
bec_widgets/widgets/device_browser/device_browser.py,sha256=PRpgXuAUc6dCWXddp7m_dxUE9VA6AuSzCJ8t3TYng1w,3517
|
159
|
+
bec_widgets/widgets/device_browser/device_browser.pyproject,sha256=s0vM1xYUwyU6Je68_hSCSBLK8ZPfHB-ftt4flfdpkXY,32
|
160
|
+
bec_widgets/widgets/device_browser/device_browser.ui,sha256=Dy_3oXArScP-_7hRI6nQ7SKKnihuyYAzJfXiRxxJQBE,1077
|
161
|
+
bec_widgets/widgets/device_browser/device_browser_plugin.py,sha256=H2NBiDlEJC1SzFNmBpSnQv93QfXDToDML_ektE8rksc,1213
|
162
|
+
bec_widgets/widgets/device_browser/register_device_browser.py,sha256=LJ0ckrgUbU5yprhlrOtSQzymztKyb9zksMuFO4BKN6s,483
|
163
|
+
bec_widgets/widgets/device_browser/device_item/__init__.py,sha256=VGY-uNVCnpcY-q-gijteB2N8KxFNgYR-qQ209MVu1QI,36
|
164
|
+
bec_widgets/widgets/device_browser/device_item/device_item.py,sha256=MtiHM8JXalfNzWYwBj12u_SJidkSchbCy7iT1YZouec,1476
|
157
165
|
bec_widgets/widgets/device_combobox/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
158
166
|
bec_widgets/widgets/device_combobox/device_combo_box.pyproject,sha256=wI2eXR5ky_IM9-BCHJnH_9CEqYcZwIuLcgitSEr8OJU,40
|
159
167
|
bec_widgets/widgets/device_combobox/device_combo_box_plugin.py,sha256=py1VYOpy0gTpdQ9eCut1dxMSfF0ckAwO5qT8ZDNkSts,1439
|
@@ -271,11 +279,11 @@ bec_widgets/widgets/website/website.py,sha256=vyRJr4jsti1h6cPHzTTtS_0IELJ3kYdS2_
|
|
271
279
|
bec_widgets/widgets/website/website_widget.pyproject,sha256=scOiV3cV1_BjbzpPzy2N8rIJL5P2qIZz8ObTJ-Uvdtg,25
|
272
280
|
bec_widgets/widgets/website/website_widget_plugin.py,sha256=hcASV-UW2TsIwspApzMbKoTVL9rqImU8ukMRn1EfXTw,1358
|
273
281
|
docs/Makefile,sha256=i2WHuFlgfyAPEW4ssEP8NY4cOibDJrVjvzSEU8_Ggwc,634
|
274
|
-
docs/conf.py,sha256=
|
275
|
-
docs/index.md,sha256=
|
282
|
+
docs/conf.py,sha256=eSfoMdl2eObhbKr7eki59DrkNUh15KfcZpuBc7goMRc,2500
|
283
|
+
docs/index.md,sha256=h4edya5UA0bx21ReHu40lJudqVBH41tOASjnCjmoYj8,1197
|
276
284
|
docs/make.bat,sha256=vKazJE8RW49Cy8K7hm8QYbletvAd8YkeKsaPA_dWnXs,800
|
277
|
-
docs/requirements.txt,sha256=
|
278
|
-
docs/_static/custom.css,sha256=
|
285
|
+
docs/requirements.txt,sha256=gMQDaDpz_LSH5TP6dKxKXqI5kupNnT4g-4KJ4fg2o5s,161
|
286
|
+
docs/_static/custom.css,sha256=82A7X4IJNl9ln7IO9edF96JCWXbsCLtBIsh4jrXV1-w,13535
|
279
287
|
docs/_templates/custom-class-template.rst,sha256=HPuPaGJob2zXlWOl5FmA-hAZRbUTGQmdqo3HS1iIFog,711
|
280
288
|
docs/_templates/custom-module-template.rst,sha256=MXYXAz06HP_mbblO--iFwL08xROmSBo7U4O-hPbMcZU,1228
|
281
289
|
docs/api_reference/api_reference.md,sha256=D2l5H4fd50uc55ShTFS0JhtDYCma01dIX69oHKN-K2w,167
|
@@ -286,14 +294,32 @@ docs/assets/index_contribute.svg,sha256=OCjvYBw_JhcY_D5Zd7f1MctQvq1YNalYlqPNwB1X
|
|
286
294
|
docs/assets/index_getting_started.svg,sha256=Www1OXmauYlouZD51AR6-VG2vxrEig8-jjuDPhzkNxc,3977
|
287
295
|
docs/assets/index_user_guide.svg,sha256=sRjKwOHVJStBYIQUFVcnfmbeXd2qAp0HYjleSp66XCI,6429
|
288
296
|
docs/assets/rocket_launch_48dp.svg,sha256=pdrPrBcKWUa5OlgWKM0B6TA6qAW7E57d7C7YW2r1OT8,1070
|
289
|
-
docs/
|
297
|
+
docs/assets/widget_screenshots/buttons.png,sha256=U5pEX6-uNYyu5HS8T-64e3hrHeVKdCHwr5xlCTjJVv8,5338
|
298
|
+
docs/assets/widget_screenshots/device_box.png,sha256=F5HdgCRkXP8Li3zMxmLFKHG1QCTeU2JgZpf-ghZNpl0,25990
|
299
|
+
docs/assets/widget_screenshots/device_browser.png,sha256=_6vBqpgqF18nIH1F6OgeZnuD77mbLezsm-yVyLaza0I,18575
|
300
|
+
docs/assets/widget_screenshots/device_inputs.png,sha256=hGcJv3uHHU7_M7AUetFr26ejOsX04ZzZkgOtRTqORs0,4608
|
301
|
+
docs/assets/widget_screenshots/dock_area.png,sha256=PlUXBCf6HxZIM_86JrYiTqKoFOmEFG398di-GVvcIkg,334220
|
302
|
+
docs/assets/widget_screenshots/figure.png,sha256=oWs0nJx0mIa-_tpceg3ckOl2wabeVvHDrclrxFZnVWU,391323
|
303
|
+
docs/assets/widget_screenshots/image_widget.png,sha256=eXAcJZwXPW9zurQSwWUKjpv_N1FkWSdrG-TshARpNAs,198819
|
304
|
+
docs/assets/widget_screenshots/motor_map_widget.png,sha256=BkfBJKO2NMxrPuWlTHZ3NEnX4xGHP5yk0uZDVgAAuxE,149914
|
305
|
+
docs/assets/widget_screenshots/position_indicator.png,sha256=suanT7Sw2Lmxohd3M-KIo2qPsBPyRVawF0KiDOejXGg,2699
|
306
|
+
docs/assets/widget_screenshots/queue.png,sha256=0w1okQFCSCeJqD1ppOvYY9beDiXw9XGpZz77saaJwuk,133874
|
307
|
+
docs/assets/widget_screenshots/ring_progress_bar.png,sha256=vzYktDJ0T4PsM_kCfF0EnqClEZZiWj0htebFAUVgNvA,45471
|
308
|
+
docs/assets/widget_screenshots/scan_controller.png,sha256=58sL5cTM7DWqDC30F3CwZZE7ShSVBujPyWI2D96LHaQ,93656
|
309
|
+
docs/assets/widget_screenshots/spinner.gif,sha256=zoDOOgyahDlTqAh6JfTI35xqUtQ00YBd5nDdHXouVI0,188376
|
310
|
+
docs/assets/widget_screenshots/status_box.png,sha256=FyLeFxUyRRd5DX_vo13a-NTPdasoXNd9rzD3VhbyXRs,117520
|
311
|
+
docs/assets/widget_screenshots/text_box.png,sha256=MWShR47JL4-NdTNSp6P8DLPxh8SBtVrumna5EbN-EBQ,27124
|
312
|
+
docs/assets/widget_screenshots/toggle.png,sha256=QIP3tCxBadkm75gQMwXG0WSv_tKWi36Hs3jyQ74tDOc,5183
|
313
|
+
docs/assets/widget_screenshots/waveform_widget.png,sha256=SsmBux5jusTmzRoZabN3ThGKu5LzfhhFC645-tlhj30,171788
|
314
|
+
docs/assets/widget_screenshots/website.png,sha256=2NZmVKy2MOP6L1Y2ZNUllJr2uCjGl65qCZvYCi5SMg0,39017
|
315
|
+
docs/developer/developer.md,sha256=KLYulqlv9qhOZktrKSU8vZCxHmaJYmT66jG6igXDzQE,1147
|
290
316
|
docs/developer/introduction/concepts.md,sha256=N23ewZjPx97eJtrU6-0Lou2IvPfkfZ6Nw6n9SwASQ74,1721
|
291
317
|
docs/developer/introduction/contributing.md,sha256=ocW5kjBNwD5k_nDkusXUpsW8jJALajrpNSRVJftuF-k,1668
|
292
318
|
docs/developer/introduction/introduction.md,sha256=860Sw05t1RGW13IUlM5bJwK8DckYhSABPKZykgmwcpA,774
|
293
319
|
docs/developer/widget_development/widget_development.md,sha256=wGfDjbt9EonVxUg59keADy7wCLyS-KzCz7m4hY0OV_A,526
|
294
320
|
docs/introduction/introduction.md,sha256=YBEFDhxqHTcbfbNTo76xDflaFUHIqDs-sToA1HRmCnI,1436
|
295
321
|
docs/user/customisation.md,sha256=wCW8fAbqtlgGE3mURvXOrK67Xo0_B-lxfg0sYuQWB40,3186
|
296
|
-
docs/user/user.md,sha256=
|
322
|
+
docs/user/user.md,sha256=FuBog2_wymy-A-p6QhXYf7CYn6tR6ojwK1ZLgV-tF1E,1499
|
297
323
|
docs/user/api_reference/api_reference.md,sha256=q2Imc48Rq6GcAP0R4bS3KuW5ptZZdsV4wxGJb3JJQHg,174
|
298
324
|
docs/user/applications/applications.md,sha256=yOECfaYRUEDIxF-O0duOwSJlG4f93RylrpMjbw1-8Dg,100
|
299
325
|
docs/user/getting_started/BECDockArea.png,sha256=t3vSm_rVRk371J5LOutbolETuEjStNc2aTT1YFOcSSA,2046774
|
@@ -303,23 +329,36 @@ docs/user/getting_started/gui_complex_gui.gif,sha256=ovv9u371BGG5GqhzyBMl4mvqMHL
|
|
303
329
|
docs/user/getting_started/installation.md,sha256=VqtHasD0BAPt-K6YJQicWpyqb91RJYkZ8qpvwSLsgaY,1153
|
304
330
|
docs/user/getting_started/quick_start.md,sha256=ABDRRB8DM8dFYdsWUfzQV0eaffRFAlcn2HIfw7yiUGs,9401
|
305
331
|
docs/user/getting_started/video_tutorials.md,sha256=rLIlyIwVH0fsi-CaY8FebUBzF4sWP3UPirB1LvbL1go,765
|
306
|
-
docs/user/widgets/
|
307
|
-
docs/user/widgets/bec_figure.
|
308
|
-
docs/user/widgets/
|
309
|
-
docs/user/widgets/bec_status_box.gif,sha256=kLxf40HbS6fjdUIQ2b9SiduBEXdBd4DDWGEnQDOFMcY,1259044
|
310
|
-
docs/user/widgets/bec_status_box.md,sha256=
|
311
|
-
docs/user/widgets/buttons.md,sha256=
|
312
|
-
docs/user/widgets/
|
313
|
-
docs/user/widgets/
|
314
|
-
docs/user/widgets/
|
315
|
-
docs/user/widgets/
|
316
|
-
docs/user/widgets/
|
317
|
-
docs/user/widgets/
|
318
|
-
docs/user/widgets/
|
319
|
-
docs/user/widgets/
|
320
|
-
docs/user/widgets/
|
321
|
-
docs/user/widgets/
|
322
|
-
docs/user/widgets/
|
332
|
+
docs/user/widgets/widgets.md,sha256=8JeOetzgxWaBPqZMRIowodGqjA8faAolg7vR1FyyhjE,4476
|
333
|
+
docs/user/widgets/bec_figure/BECFigure.png,sha256=8dQr4u0uk_y0VV-R1Jh9yTR3Vidd9HDEno_07R0swaE,1605920
|
334
|
+
docs/user/widgets/bec_figure/bec_figure.md,sha256=_HDsRXf45N8NDwfHt4HqI3uDMr5Tx_A6RB7yY9m1l8c,6023
|
335
|
+
docs/user/widgets/bec_status_box/bec_status_box.gif,sha256=kLxf40HbS6fjdUIQ2b9SiduBEXdBd4DDWGEnQDOFMcY,1259044
|
336
|
+
docs/user/widgets/bec_status_box/bec_status_box.md,sha256=e23y7DYg63IwFFInDozDslh9BdYvbWY3NGiwv6_Fc3Q,2056
|
337
|
+
docs/user/widgets/buttons/buttons.md,sha256=WVeRcOPCk9a28lbJ-25Eqd7U6uNL_YXYGl4WddOUwkc,1974
|
338
|
+
docs/user/widgets/device_browser/device_browser.md,sha256=kzZrS3aoWbmUUPygjGNuXJ7_qqD35WJN-HwQHx5hpmI,1102
|
339
|
+
docs/user/widgets/device_browser/device_browser.png,sha256=85clca-gpCyxTL-SOS8hmgDmjbZ5i-0ZmOVA6vBZBUA,46429
|
340
|
+
docs/user/widgets/device_input/device_input.md,sha256=5zkBeCX_I8TBM0rHi2WHgqrM0k64VoC87vhIWyo3Isc,3878
|
341
|
+
docs/user/widgets/dock_area/BECDockArea.png,sha256=t3vSm_rVRk371J5LOutbolETuEjStNc2aTT1YFOcSSA,2046774
|
342
|
+
docs/user/widgets/dock_area/bec_dock_area.md,sha256=aWVVm9dsoGa7XQQdGYU5h7oY3LV5jyanmc07Bk1aT3o,4903
|
343
|
+
docs/user/widgets/image/image_plot.gif,sha256=_mVFhMTXGqwDOcEtrBHMZj5Thn2sLhDAHEeL2XyHN-s,14098977
|
344
|
+
docs/user/widgets/image/image_widget.md,sha256=GnU-GWO651IK_Sux9WzBwDGwJVXX7qpAY6a6NuzmLpM,3986
|
345
|
+
docs/user/widgets/motor_map/motor.gif,sha256=FtaWdRHx4UZaGJPpq8LNhMMgX4PFcAB6IZ93JCMEh_w,2280719
|
346
|
+
docs/user/widgets/motor_map/motor_map.md,sha256=3QFJSM6Wo1qfWNi_Ag7D2IYhppkpth_KnmUhkdWL6uo,3522
|
347
|
+
docs/user/widgets/position_indicator/position_indicator.md,sha256=UmY3cX5W3wQeIZRFccgXfd4fTr8ee8ykHSD-n1KfA9k,3067
|
348
|
+
docs/user/widgets/positioner_box/positioner_box.md,sha256=voOU_wfwd-qBykk-60PWoOFlk_Tn7pPWiyOctYe40ew,2979
|
349
|
+
docs/user/widgets/progress_bar/progress_bar.gif,sha256=5jh0Zw2BBGPuNxszV1DBLJCb4_6glIRX-U2ABjnsK2k,5263592
|
350
|
+
docs/user/widgets/progress_bar/ring_progress_bar.md,sha256=F9q2UrwZWwNzbjs1ONfSgP1dqgb5dx8AbOoTZOJGzWA,3705
|
351
|
+
docs/user/widgets/queue/queue.md,sha256=Re37dp_YHTa9N6TTobScO_n3Fniq2_Ca2Ms3DOb0suA,2110
|
352
|
+
docs/user/widgets/scan_control/scan_control.gif,sha256=zrVOZgleMbu7Jd8AAIn2fQ08tNAEMSud3g0ZLyNUcjQ,1506739
|
353
|
+
docs/user/widgets/scan_control/scan_control.md,sha256=FZjpwbL4jFYoU0AoYiwOSMCI1ftTxJbAdhxe9pDO1gM,2559
|
354
|
+
docs/user/widgets/spinner/spinner.md,sha256=MN7LeAkNOqRZ_A6c4PGv6KsiGbjm7Q-nkGkL5CcxOeE,2465
|
355
|
+
docs/user/widgets/text_box/text_box.md,sha256=u8UoApmnH3LilWUQ73ASd6ts0FQfM6eRqg3GG9iQhOc,2508
|
356
|
+
docs/user/widgets/toggle/toggle.md,sha256=vmhqbTU93R9DUeR0a85gGIRPc07cSl3_vtsVN4r0yO0,2983
|
357
|
+
docs/user/widgets/waveform/bec_figure_dap.gif,sha256=8EBRKcB7828M7w429c7djTZG2AbfJ-Zsy1epPvyYoII,4058735
|
358
|
+
docs/user/widgets/waveform/scatter_2D.gif,sha256=yHpsuAUseMafJjI_J5BcOhmE3nu9VFn_Xm9XHzJaH5I,13188862
|
359
|
+
docs/user/widgets/waveform/w1D.gif,sha256=tuHbleJpl6bJFNNC2OdndF5LF7IyfvlkFCMGZajrQPs,622773
|
360
|
+
docs/user/widgets/waveform/waveform_widget.md,sha256=clmZzrrzqiU9bJH-n3ic4tUK0pHTOaoVX42I1m4xg6w,5430
|
361
|
+
docs/user/widgets/website/website.md,sha256=UVwBHOaBK-mnKr9NAWWXNcxJcQa2eQtOgOz89y4Z2Xk,2448
|
323
362
|
tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
324
363
|
tests/end-2-end/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
325
364
|
tests/end-2-end/conftest.py,sha256=-BLnFE-NeCerf6xahGCkbZ4Ktactowi6RkBnboIzRvg,1767
|
@@ -332,7 +371,7 @@ tests/references/SpinnerWidget/SpinnerWidget_linux.png,sha256=-Tf5x0xY0pb-8sXH6P
|
|
332
371
|
tests/references/SpinnerWidget/SpinnerWidget_started_darwin.png,sha256=wPc65MrSSKJib2aBlPI20mBE-zfamOh-SORGRD27dhQ,14773
|
333
372
|
tests/references/SpinnerWidget/SpinnerWidget_started_linux.png,sha256=gE1L3nVuypmsW8vcnV9kX4mDgQGGXYjiEIYiRifr5DM,15265
|
334
373
|
tests/unit_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
335
|
-
tests/unit_tests/client_mocks.py,sha256=
|
374
|
+
tests/unit_tests/client_mocks.py,sha256=0XNJXTFvpUmcL_-BrWqEJNUmYYc6T-E1LgUOmiz_uR8,5734
|
336
375
|
tests/unit_tests/conftest.py,sha256=EE5RX_xR50ELJPgT2kny9rM1NCmCRO22sd_L9fvVSEk,1917
|
337
376
|
tests/unit_tests/test_bec_connector.py,sha256=5uqBfjgMeOlGvqJlFbytxEpZ1El7_Y2q8fZHh4GvtD8,2478
|
338
377
|
tests/unit_tests/test_bec_dispatcher.py,sha256=uHKMDc2112Q7XY5GkaeV_uGzsjHCoOa7u-MpR-Y-sJA,4078
|
@@ -347,6 +386,7 @@ tests/unit_tests/test_client_utils.py,sha256=CBdWIVJ_UiyFzTJnX3XJm4PGw2uXhFvRCP_
|
|
347
386
|
tests/unit_tests/test_color_map_selector.py,sha256=dTsizpT7TUpX2AEWIc0v09KPOryhWepFXFI9duQ3NF8,1497
|
348
387
|
tests/unit_tests/test_color_validation.py,sha256=xbFbtFDia36XLgaNrX2IwvAX3IDC_Odpj5BGoJSgiIE,2389
|
349
388
|
tests/unit_tests/test_crosshair.py,sha256=3OMAJ2ZaISYXMOtkXf1rPdy94vCr8njeLi6uHblBL9Q,5045
|
389
|
+
tests/unit_tests/test_device_browser.py,sha256=LOvvUFepNcoQptX7d6oUoomfg5nyjjdCMJ2iHviF9aQ,2948
|
350
390
|
tests/unit_tests/test_device_input_base.py,sha256=LY-3adMb2xM9pBiP6V2bAJF_65csCe2Xfaq5ArVEE1E,2859
|
351
391
|
tests/unit_tests/test_device_input_widgets.py,sha256=Y3mc_EaeQAPxpj6DijvxLLyMPSxnaNN86KhIL4ASO3E,5821
|
352
392
|
tests/unit_tests/test_error_utils.py,sha256=LQOxz29WCGOe0qwFkaPDixjUmdnF3qeAGxD4A3t9IKg,2108
|
@@ -378,8 +418,8 @@ tests/unit_tests/test_configs/config_device_no_entry.yaml,sha256=hdvue9KLc_kfNzG
|
|
378
418
|
tests/unit_tests/test_configs/config_scan.yaml,sha256=vo484BbWOjA_e-h6bTjSV9k7QaQHrlAvx-z8wtY-P4E,1915
|
379
419
|
tests/unit_tests/test_msgs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
380
420
|
tests/unit_tests/test_msgs/available_scans_message.py,sha256=m_z97hIrjHXXMa2Ex-UvsPmTxOYXfjxyJaGkIY6StTY,46532
|
381
|
-
bec_widgets-0.
|
382
|
-
bec_widgets-0.
|
383
|
-
bec_widgets-0.
|
384
|
-
bec_widgets-0.
|
385
|
-
bec_widgets-0.
|
421
|
+
bec_widgets-0.95.0.dist-info/METADATA,sha256=RN9pJSz3DeE3sqmpUsCsmEqKPkzUaCHOZ3m0xoeD7ks,1325
|
422
|
+
bec_widgets-0.95.0.dist-info/WHEEL,sha256=1yFddiXMmvYK7QYTqtRNtX66WJ0Mz8PYEiEUoOUUxRY,87
|
423
|
+
bec_widgets-0.95.0.dist-info/entry_points.txt,sha256=3otEkCdDB9LZJuBLzG4pFLK5Di0CVybN_12IsZrQ-58,166
|
424
|
+
bec_widgets-0.95.0.dist-info/licenses/LICENSE,sha256=YRKe85CBRyP7UpEAWwU8_qSIyuy5-l_9C-HKg5Qm8MQ,1511
|
425
|
+
bec_widgets-0.95.0.dist-info/RECORD,,
|