mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-12 18:29:04 +08:00
Merge pull request #6011 from Ultimaker/CURA-6651_add_peripheral_data_slot
Add data slot for peripherals
This commit is contained in:
commit
a6790e7bb2
@ -2,13 +2,13 @@
|
|||||||
# Cura is released under the terms of the LGPLv3 or higher.
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
from PyQt5.QtCore import pyqtSignal, pyqtProperty, QObject, QVariant, pyqtSlot, QUrl
|
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 UM.Math.Vector import Vector
|
||||||
|
from cura.PrinterOutput.Peripheral import Peripheral
|
||||||
from cura.PrinterOutput.Models.PrinterConfigurationModel import PrinterConfigurationModel
|
from cura.PrinterOutput.Models.PrinterConfigurationModel import PrinterConfigurationModel
|
||||||
from cura.PrinterOutput.Models.ExtruderOutputModel import ExtruderOutputModel
|
from cura.PrinterOutput.Models.ExtruderOutputModel import ExtruderOutputModel
|
||||||
|
|
||||||
MYPY = False
|
if TYPE_CHECKING:
|
||||||
if MYPY:
|
|
||||||
from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel
|
from cura.PrinterOutput.Models.PrintJobOutputModel import PrintJobOutputModel
|
||||||
from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
from cura.PrinterOutput.PrinterOutputController import PrinterOutputController
|
||||||
|
|
||||||
@ -45,6 +45,7 @@ class PrinterOutputModel(QObject):
|
|||||||
self._is_preheating = False
|
self._is_preheating = False
|
||||||
self._printer_type = ""
|
self._printer_type = ""
|
||||||
self._buildplate = ""
|
self._buildplate = ""
|
||||||
|
self._peripherals = [] # type: List[Peripheral]
|
||||||
|
|
||||||
self._printer_configuration.extruderConfigurations = [extruder.extruderConfiguration for extruder in
|
self._printer_configuration.extruderConfigurations = [extruder.extruderConfiguration for extruder in
|
||||||
self._extruders]
|
self._extruders]
|
||||||
@ -295,3 +296,17 @@ class PrinterOutputModel(QObject):
|
|||||||
if self._printer_configuration.isValid():
|
if self._printer_configuration.isValid():
|
||||||
return self._printer_configuration
|
return self._printer_configuration
|
||||||
return None
|
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()
|
16
cura/PrinterOutput/Peripheral.py
Normal file
16
cura/PrinterOutput/Peripheral.py
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# Copyright (c) 2019 Ultimaker B.V.
|
||||||
|
# Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
|
|
||||||
|
## Data class that represents a peripheral for a printer.
|
||||||
|
#
|
||||||
|
# Output device plug-ins may specify that the printer has a certain set of
|
||||||
|
# peripherals. This set is then possibly shown in the interface of the monitor
|
||||||
|
# stage.
|
||||||
|
class Peripheral:
|
||||||
|
## Constructs the peripheral.
|
||||||
|
# \param type A unique ID for the type of peripheral.
|
||||||
|
# \param name A human-readable name for the peripheral.
|
||||||
|
def __init__(self, peripheral_type: str, name: str) -> None:
|
||||||
|
self.type = peripheral_type
|
||||||
|
self.name = name
|
Loading…
x
Reference in New Issue
Block a user