mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 11:41:49 +02:00
refactor: move positioner_box and line into submodule
PositionerBox and PositionerControlLine are now exported from from bec_widgets.widgets.control.device_control.positioner_box, removing one level of hierarchy
This commit is contained in:
@ -20,7 +20,7 @@ from bec_widgets.qt_utils.toolbar import (
|
|||||||
from bec_widgets.utils import ConnectionConfig, WidgetContainerUtils
|
from bec_widgets.utils import ConnectionConfig, WidgetContainerUtils
|
||||||
from bec_widgets.utils.bec_widget import BECWidget
|
from bec_widgets.utils.bec_widget import BECWidget
|
||||||
from bec_widgets.widgets.containers.dock.dock import BECDock, DockConfig
|
from bec_widgets.widgets.containers.dock.dock import BECDock, DockConfig
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox
|
from bec_widgets.widgets.control.device_control.positioner_box import PositionerBox
|
||||||
from bec_widgets.widgets.control.scan_control.scan_control import ScanControl
|
from bec_widgets.widgets.control.scan_control.scan_control import ScanControl
|
||||||
from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor
|
from bec_widgets.widgets.editors.vscode.vscode import VSCodeEditor
|
||||||
from bec_widgets.widgets.plots.image.image_widget import BECImageWidget
|
from bec_widgets.widgets.plots.image.image_widget import BECImageWidget
|
||||||
|
@ -0,0 +1,8 @@
|
|||||||
|
from bec_widgets.widgets.control.device_control.positioner_box.positioner_box.positioner_box import (
|
||||||
|
PositionerBox,
|
||||||
|
)
|
||||||
|
from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line.positioner_control_line import (
|
||||||
|
PositionerControlLine,
|
||||||
|
)
|
||||||
|
|
||||||
|
__ALL__ = ["PositionerBox", "PositionerControlLine"]
|
||||||
|
@ -23,6 +23,7 @@ from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit
|
|||||||
DeviceLineEdit,
|
DeviceLineEdit,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
MODULE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
MODULE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
||||||
@ -31,6 +32,7 @@ MODULE_PATH = os.path.dirname(os.path.dirname(os.path.dirname(__file__)))
|
|||||||
class PositionerBox(BECWidget, CompactPopupWidget):
|
class PositionerBox(BECWidget, CompactPopupWidget):
|
||||||
"""Simple Widget to control a positioner in box form"""
|
"""Simple Widget to control a positioner in box form"""
|
||||||
|
|
||||||
|
current_path = ""
|
||||||
ui_file = "positioner_box.ui"
|
ui_file = "positioner_box.ui"
|
||||||
dimensions = (234, 224)
|
dimensions = (234, 224)
|
||||||
|
|
||||||
@ -54,7 +56,8 @@ class PositionerBox(BECWidget, CompactPopupWidget):
|
|||||||
self._device = ""
|
self._device = ""
|
||||||
self._limits = None
|
self._limits = None
|
||||||
self._dialog = None
|
self._dialog = None
|
||||||
|
if self.current_path == "":
|
||||||
|
self.current_path = os.path.dirname(__file__)
|
||||||
self.init_ui()
|
self.init_ui()
|
||||||
|
|
||||||
if device is not None:
|
if device is not None:
|
||||||
@ -65,8 +68,7 @@ class PositionerBox(BECWidget, CompactPopupWidget):
|
|||||||
"""Init the ui"""
|
"""Init the ui"""
|
||||||
self.device_changed.connect(self.on_device_change)
|
self.device_changed.connect(self.on_device_change)
|
||||||
|
|
||||||
current_path = os.path.dirname(__file__)
|
self.ui = UILoader(self).loader(os.path.join(self.current_path, self.ui_file))
|
||||||
self.ui = UILoader(self).loader(os.path.join(current_path, self.ui_file))
|
|
||||||
|
|
||||||
self.addWidget(self.ui)
|
self.addWidget(self.ui)
|
||||||
self.layout.setSpacing(0)
|
self.layout.setSpacing(0)
|
@ -6,7 +6,7 @@ import os
|
|||||||
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
||||||
|
|
||||||
from bec_widgets.utils.bec_designer import designer_material_icon
|
from bec_widgets.utils.bec_designer import designer_material_icon
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox
|
from bec_widgets.widgets.control.device_control.positioner_box import PositionerBox
|
||||||
|
|
||||||
DOM_XML = """
|
DOM_XML = """
|
||||||
<ui language='c++'>
|
<ui language='c++'>
|
@ -1,6 +1,7 @@
|
|||||||
|
import os
|
||||||
from bec_lib.device import Positioner
|
from bec_lib.device import Positioner
|
||||||
|
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox
|
from bec_widgets.widgets.control.device_control.positioner_box import PositionerBox
|
||||||
|
|
||||||
|
|
||||||
class PositionerControlLine(PositionerBox):
|
class PositionerControlLine(PositionerBox):
|
||||||
@ -12,13 +13,14 @@ class PositionerControlLine(PositionerBox):
|
|||||||
PLUGIN = True
|
PLUGIN = True
|
||||||
ICON_NAME = "switch_left"
|
ICON_NAME = "switch_left"
|
||||||
|
|
||||||
def __init__(self, parent=None, device: Positioner = None, *args, **kwargs):
|
def __init__(self, parent=None, device: Positioner | str | None = None, *args, **kwargs):
|
||||||
"""Initialize the DeviceControlLine.
|
"""Initialize the DeviceControlLine.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
parent: The parent widget.
|
parent: The parent widget.
|
||||||
device (Positioner): The device to control.
|
device (Positioner): The device to control.
|
||||||
"""
|
"""
|
||||||
|
self.current_path = os.path.dirname(__file__)
|
||||||
super().__init__(parent=parent, device=device, *args, **kwargs)
|
super().__init__(parent=parent, device=device, *args, **kwargs)
|
||||||
|
|
||||||
|
|
@ -6,9 +6,7 @@ import os
|
|||||||
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
from qtpy.QtDesigner import QDesignerCustomWidgetInterface
|
||||||
|
|
||||||
from bec_widgets.utils.bec_designer import designer_material_icon
|
from bec_widgets.utils.bec_designer import designer_material_icon
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line import (
|
from bec_widgets.widgets.control.device_control.positioner_box import PositionerControlLine
|
||||||
PositionerControlLine,
|
|
||||||
)
|
|
||||||
|
|
||||||
DOM_XML = """
|
DOM_XML = """
|
||||||
<ui language='c++'>
|
<ui language='c++'>
|
@ -6,7 +6,7 @@ def main(): # pragma: no cover
|
|||||||
return
|
return
|
||||||
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
||||||
|
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line_plugin import (
|
from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line.positioner_control_line_plugin import (
|
||||||
PositionerControlLinePlugin,
|
PositionerControlLinePlugin,
|
||||||
)
|
)
|
||||||
|
|
@ -8,7 +8,7 @@ from qtpy.QtCore import Property, QSize, Signal, Slot
|
|||||||
from qtpy.QtWidgets import QGridLayout, QGroupBox, QVBoxLayout, QWidget
|
from qtpy.QtWidgets import QGridLayout, QGroupBox, QVBoxLayout, QWidget
|
||||||
|
|
||||||
from bec_widgets.utils.bec_widget import BECWidget
|
from bec_widgets.utils.bec_widget import BECWidget
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox
|
from bec_widgets.widgets.control.device_control.positioner_box import PositionerBox
|
||||||
|
|
||||||
logger = bec_logger.logger
|
logger = bec_logger.logger
|
||||||
|
|
||||||
|
@ -7,8 +7,8 @@ from qtpy.QtCore import Qt, QTimer
|
|||||||
from qtpy.QtGui import QValidator
|
from qtpy.QtGui import QValidator
|
||||||
from qtpy.QtWidgets import QPushButton
|
from qtpy.QtWidgets import QPushButton
|
||||||
|
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_box import PositionerBox
|
from bec_widgets.widgets.control.device_control.positioner_box import (
|
||||||
from bec_widgets.widgets.control.device_control.positioner_box.positioner_control_line import (
|
PositionerBox,
|
||||||
PositionerControlLine,
|
PositionerControlLine,
|
||||||
)
|
)
|
||||||
from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import (
|
from bec_widgets.widgets.control.device_input.device_line_edit.device_line_edit import (
|
||||||
@ -23,11 +23,11 @@ from .conftest import create_widget
|
|||||||
def positioner_box(qtbot, mocked_client):
|
def positioner_box(qtbot, mocked_client):
|
||||||
"""Fixture for PositionerBox widget"""
|
"""Fixture for PositionerBox widget"""
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.uuid.uuid4"
|
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.positioner_box.uuid.uuid4"
|
||||||
) as mock_uuid:
|
) as mock_uuid:
|
||||||
mock_uuid.return_value = "fake_uuid"
|
mock_uuid.return_value = "fake_uuid"
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.PositionerBox._check_device_is_valid",
|
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.positioner_box.PositionerBox._check_device_is_valid",
|
||||||
return_value=True,
|
return_value=True,
|
||||||
):
|
):
|
||||||
db = create_widget(qtbot, PositionerBox, device="samx", client=mocked_client)
|
db = create_widget(qtbot, PositionerBox, device="samx", client=mocked_client)
|
||||||
@ -126,11 +126,11 @@ def test_positioner_control_line(qtbot, mocked_client):
|
|||||||
Inherits from PositionerBox, but the layout is changed. Check dimensions only
|
Inherits from PositionerBox, but the layout is changed. Check dimensions only
|
||||||
"""
|
"""
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.uuid.uuid4"
|
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.positioner_box.uuid.uuid4"
|
||||||
) as mock_uuid:
|
) as mock_uuid:
|
||||||
mock_uuid.return_value = "fake_uuid"
|
mock_uuid.return_value = "fake_uuid"
|
||||||
with mock.patch(
|
with mock.patch(
|
||||||
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.PositionerBox._check_device_is_valid",
|
"bec_widgets.widgets.control.device_control.positioner_box.positioner_box.positioner_box.PositionerBox._check_device_is_valid",
|
||||||
return_value=True,
|
return_value=True,
|
||||||
):
|
):
|
||||||
db = PositionerControlLine(device="samx", client=mocked_client)
|
db = PositionerControlLine(device="samx", client=mocked_client)
|
||||||
|
Reference in New Issue
Block a user