12345678910111213141516171819202122232425262728293031323334353637 |
- # Copyright (c) 2019 Ultimaker B.V.
- # Cura is released under the terms of the LGPLv3 or higher.
- from typing import Any, Dict, Optional
- from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal
- class QualityChangesGroup(QObject):
- """Data struct to group several quality changes instance containers together.
- Each group represents one "custom profile" as the user sees it, which contains an instance container for the
- global stack and one instance container per extruder.
- """
- def __init__(self, name: str, quality_type: str, intent_category: str, parent: Optional["QObject"] = None) -> None:
- super().__init__(parent)
- self._name = name
- self.quality_type = quality_type
- self.intent_category = intent_category
- self.is_available = False
- self.metadata_for_global = {} # type: Dict[str, Any]
- self.metadata_per_extruder = {} # type: Dict[int, Dict[str, Any]]
- nameChanged = pyqtSignal()
- def setName(self, name: str) -> None:
- if self._name != name:
- self._name = name
- self.nameChanged.emit()
- @pyqtProperty(str, fset = setName, notify = nameChanged)
- def name(self) -> str:
- return self._name
- def __str__(self) -> str:
- return "{class_name}[{name}, available = {is_available}]".format(class_name = self.__class__.__name__, name = self.name, is_available = self.is_available)
|