diff --git a/cura/Settings/ExtruderStack.py b/cura/Settings/ExtruderStack.py index 519e09cb42..18a9969828 100644 --- a/cura/Settings/ExtruderStack.py +++ b/cura/Settings/ExtruderStack.py @@ -38,6 +38,10 @@ class ExtruderStack(CuraContainerStack): # For backward compatibility: Register the extruder with the Extruder Manager ExtruderManager.getInstance().registerExtruder(self, stack.id) + @classmethod + def getLoadingPriority(cls) -> int: + return 3 + ## Overridden from ContainerStack # # It will perform a few extra checks when trying to get properties. @@ -64,6 +68,13 @@ class ExtruderStack(CuraContainerStack): return self.getNextStack()._getMachineDefinition() + @override(CuraContainerStack) + def deserialize(self, contents: str) -> None: + super().deserialize(contents) + stacks = ContainerRegistry.getInstance().findContainerStacks(id=self.getMetaDataEntry("machine", "")) + if stacks: + self.setNextStack(stacks[0]) + extruder_stack_mime = MimeType( name = "application/x-cura-extruderstack", comment = "Cura Extruder Stack", diff --git a/cura/Settings/GlobalStack.py b/cura/Settings/GlobalStack.py index c86c496516..0e2c2db5e8 100644 --- a/cura/Settings/GlobalStack.py +++ b/cura/Settings/GlobalStack.py @@ -40,6 +40,10 @@ class GlobalStack(CuraContainerStack): def extruders(self) -> list: return self._extruders + @classmethod + def getLoadingPriority(cls) -> int: + return 2 + ## Add an extruder to the list of extruders of this stack. # # \param extruder The extruder to add.