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