Browse Source

Make ExtruderStack a subclass of CuraContainerStack

Arjen Hiemstra 8 years ago
parent
commit
202f19a081
1 changed files with 11 additions and 34 deletions
  1. 11 34
      cura/Settings/ExtruderStack.py

+ 11 - 34
cura/Settings/ExtruderStack.py

@@ -3,39 +3,25 @@
 
 from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot
 
+from UM.Decorators import override
 from UM.MimeTypeDatabase import MimeType, MimeTypeDatabase
-from UM.Settings.ContainerStack import ContainerStack
+from UM.Settings.ContainerStack import ContainerStack, InvalidContainerStackError
 from UM.Settings.ContainerRegistry import ContainerRegistry
 from UM.Settings.InstanceContainer import InstanceContainer
 from UM.Settings.DefinitionContainer import DefinitionContainer
+from UM.Settings.Interfaces import ContainerInterface
 
-class ExtruderStack(ContainerStack):
+from . import Exceptions
+from .CuraContainerStack import CuraContainerStack
+
+class ExtruderStack(CuraContainerStack):
     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]
+    @override(ContainerStack)
+    def setNextStack(self, stack):
+        super().setNextStack(stack)
+        stack.addExtruder(self)
 
 extruder_stack_mime = MimeType(
     name = "application/x-cura-extruderstack",
@@ -45,12 +31,3 @@ extruder_stack_mime = MimeType(
 
 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
-