12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- # Copyright (c) 2024 UltiMaker
- # Cura is released under the terms of the LGPLv3 or higher.
- from typing import Optional
- from PyQt6.QtCore import pyqtProperty, QObject
- from cura.PrinterOutput.FormatMaps import FormatMaps
- class MaterialOutputModel(QObject):
- def __init__(self, guid: Optional[str], type: str, color: str, brand: str, name: str, parent = None) -> None:
- super().__init__(parent)
- name, guid = MaterialOutputModel.getMaterialFromDefinition(guid, type, brand, name)
- self._guid = guid
- self._type = type
- self._color = color
- self._brand = brand
- self._name = name
- @pyqtProperty(str, constant = True)
- def guid(self) -> str:
- return self._guid if self._guid else ""
- @staticmethod
- def getMaterialFromDefinition(guid, type, brand, name):
- if guid is None and brand != "empty" and type in FormatMaps.MATERIAL_MAP:
- name = FormatMaps.MATERIAL_MAP[type]["name"]
- guid = FormatMaps.MATERIAL_MAP[type]["guid"]
- return name, guid
- @pyqtProperty(str, constant = True)
- def type(self) -> str:
- return self._type
- @pyqtProperty(str, constant = True)
- def brand(self) -> str:
- return self._brand
- @pyqtProperty(str, constant = True)
- def color(self) -> str:
- return self._color
- @pyqtProperty(str, constant = True)
- def name(self) -> str:
- return self._name
- def __eq__(self, other):
- if self is other:
- return True
- if type(other) is not MaterialOutputModel:
- return False
- return self.guid == other.guid and self.type == other.type and self.brand == other.brand and self.color == other.color and self.name == other.name
|