From fed275024a8235b01a556d5cb3ba4798e904abc9 Mon Sep 17 00:00:00 2001 From: Ghostkeeper Date: Mon, 15 Jul 2019 17:29:30 +0200 Subject: [PATCH] Add slot to store peripherals You can get the list of names of peripherals this way. Contributes to issue CURA-6651. --- .../Models/PrinterOutputModel.py | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/cura/PrinterOutput/Models/PrinterOutputModel.py b/cura/PrinterOutput/Models/PrinterOutputModel.py index 4004a90a33..13fe85e674 100644 --- a/cura/PrinterOutput/Models/PrinterOutputModel.py +++ b/cura/PrinterOutput/Models/PrinterOutputModel.py @@ -2,13 +2,13 @@ # Cura is released under the terms of the LGPLv3 or higher. from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant, pyqtSlot, QUrl -from typing import List, Dict, Optional +from typing import List, Dict, Optional, TYPE_CHECKING from UM.Math.Vector import Vector +from cura.PrinterOutput.Peripheral import Peripheral from cura.PrinterOutput.Models.PrinterConfigurationModel import PrinterConfigurationModel from cura.PrinterOutput.Models.ExtruderOutputModel import ExtruderOutputModel -MYPY = False -if MYPY: +if TYPE_CHECKING: from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel from cura.PrinterOutput.PrinterOutputController import PrinterOutputController @@ -45,6 +45,7 @@ class PrinterOutputModel(QObject): self._is_preheating = False self._printer_type = "" self._buildplate = "" + self._peripherals = [] # type: List[Peripheral] self._printer_configuration.extruderConfigurations = [extruder.extruderConfiguration for extruder in self._extruders] @@ -294,4 +295,18 @@ class PrinterOutputModel(QObject): def printerConfiguration(self) -> Optional[PrinterConfigurationModel]: if self._printer_configuration.isValid(): return self._printer_configuration - return None \ No newline at end of file + return None + + peripheralsChanged = pyqtSignal() + + @pyqtProperty(str, notify = peripheralsChanged) + def peripherals(self) -> str: + return ", ".join(*[peripheral.name for peripheral in self._peripherals]) + + def addPeripheral(self, peripheral: Peripheral) -> None: + self._peripherals.append(peripheral) + self.peripheralsChanged.emit() + + def removePeripheral(self, peripheral: Peripheral) -> None: + self._peripherals.remove(peripheral) + self.peripheralsChanged.emit() \ No newline at end of file