mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 21:59:37 +08:00
38 lines
1.4 KiB
Python
38 lines
1.4 KiB
Python
# Copyright (c) 2019 Ultimaker B.V.
|
|
# Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
from typing import Any, Dict, Optional
|
|
|
|
from PyQt6.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)
|