Cura/cura/Settings/ExtruderStack.py
2017-03-27 17:52:16 +02:00

57 lines
1.9 KiB
Python

# Copyright (c) 2017 Ultimaker B.V.
# Cura is released under the terms of the AGPLv3 or higher.
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot
from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase
from UM.Settings.ContainerStack import ContainerStack
from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.DefinitionContainer import DefinitionContainer
class ExtruderStack(ContainerStack):
def __init__(self, container_id, *args, **kwargs):
super().__init__(container_id, *args, **kwargs)
@pyqtProperty(InstanceContainer)
def userChanges(self) -> InstanceContainer:
return self._containers[_ContainerIndexes.UserChanges]
@pyqtProperty(InstanceContainer)
def qualityChanges(self) -> InstanceContainer:
return self._containers[_ContainerIndexes.QualityChanges]
@pyqtProperty(InstanceContainer)
def quality(self) -> InstanceContainer:
return self._containers[_ContainerIndexes.Quality]
@pyqtProperty(InstanceContainer)
def material(self) -> InstanceContainer:
return self._containers[_ContainerIndexes.Material]
@pyqtProperty(InstanceContainer)
def variant(self) -> InstanceContainer:
return self._containers[_ContainerIndexes.Variant]
@pyqtProperty(DefinitionContainer)
def definition(self) -> DefinitionContainer:
return self._containers[_ContainerIndexes.Definition]
extruder_stack_mime = MimeType(
name = "application/x-cura-extruderstack",
comment = "Cura Extruder Stack",
suffixes = [ "extruder.cfg" ]
)
MimeTypeDatabase.addMimeType(extruder_stack_mime)
ContainerRegistry.addContainerTypeByName(ExtruderStack, "extruder_stack", extruder_stack_mime.name)
class _ContainerIndexes:
UserChanges = 0
QualityChanges = 1
Quality = 2
Material = 3
Variant = 4
Definition = 5