From 8827ab7ff7c475628858ffee05a0e74b449d34fa Mon Sep 17 00:00:00 2001 From: wyzula-jan Date: Tue, 2 Jul 2024 20:20:17 +0200 Subject: [PATCH] feat(motor_map_widget): plugin added --- .../widgets/motor_map/assets/motor_map.png | Bin 0 -> 9746 bytes .../motor_map/bec_motor_map_widget.pyproject | 1 + .../motor_map/bec_motor_map_widget_plugin.py | 55 ++++++++++++++++++ .../register_bec_motor_map_widget.py | 15 +++++ 4 files changed, 71 insertions(+) create mode 100644 bec_widgets/widgets/motor_map/assets/motor_map.png create mode 100644 bec_widgets/widgets/motor_map/bec_motor_map_widget.pyproject create mode 100644 bec_widgets/widgets/motor_map/bec_motor_map_widget_plugin.py create mode 100644 bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py diff --git a/bec_widgets/widgets/motor_map/assets/motor_map.png b/bec_widgets/widgets/motor_map/assets/motor_map.png new file mode 100644 index 0000000000000000000000000000000000000000..8446cfe0e5ed5df19d06c3a5ff1a9a4ced16b535 GIT binary patch literal 9746 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 + + + +""" + + +class BECMotorMapWidgetPlugin(QDesignerCustomWidgetInterface): # pragma: no cover + def __init__(self): + super().__init__() + self._form_editor = None + + def createWidget(self, parent): + t = BECMotorMapWidget(parent) + return t + + def domXml(self): + return DOM_XML + + def group(self): + return "BEC Visualization Widgets" + + def icon(self): + current_path = os.path.dirname(__file__) + icon_path = os.path.join(current_path, "assets", "motor_map.png") + return QIcon(icon_path) + + def includeFile(self): + return "bec_motor_map_widget" + + def initialize(self, form_editor): + self._form_editor = form_editor + + def isContainer(self): + return False + + def isInitialized(self): + return self._form_editor is not None + + def name(self): + return "BECMotorMapWidget" + + def toolTip(self): + return "BECMotorMapWidget" + + def whatsThis(self): + return self.toolTip() diff --git a/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py b/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py new file mode 100644 index 00000000..adc4dd9c --- /dev/null +++ b/bec_widgets/widgets/motor_map/register_bec_motor_map_widget.py @@ -0,0 +1,15 @@ +def main(): # pragma: no cover + from qtpy import PYSIDE6 + + if not PYSIDE6: + print("PYSIDE6 is not available in the environment. Cannot patch designer.") + return + from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection + + from bec_widgets.widgets.motor_map.bec_motor_map_widget_plugin import BECMotorMapWidgetPlugin + + QPyDesignerCustomWidgetCollection.addCustomWidget(BECMotorMapWidgetPlugin()) + + +if __name__ == "__main__": # pragma: no cover + main()