Return newly added single extruder

The workspace reader needs to use it to get the correct material.

Contributes to issue CURA-4604.
This commit is contained in:
Ghostkeeper 2017-11-22 17:12:53 +01:00
parent fe016e336d
commit 105d7a5615
No known key found for this signature in database
GPG key ID: 5252B696FB5E7C7A
2 changed files with 4 additions and 2 deletions

View file

@ -409,7 +409,7 @@ class CuraContainerRegistry(ContainerRegistry):
extruder_stack = None
# if extruders are defined in the machine definition use those instead
if machine.extruders and len(machine.extruders) > 0:
if machine.extruders and "0" in machine.extruders:
new_extruder_id = machine.extruders["0"].getId()
extruder_stack = machine.extruders["0"]
@ -457,6 +457,8 @@ class CuraContainerRegistry(ContainerRegistry):
self.addContainer(extruder_stack)
return extruder_stack
# Fix the extruders that were upgraded to ExtruderStack instances during addContainer.
# The stacks are now responsible for setting the next stack on deserialize. However,
# due to problems with loading order, some stacks may not have the proper next stack

View file

@ -746,7 +746,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
# If not extruder stacks were saved in the project file (pre 3.1) create one manually
# We re-use the container registry's addExtruderStackForSingleExtrusionMachine method for this
if not extruder_stacks:
self._container_registry.addExtruderStackForSingleExtrusionMachine(global_stack, "fdmextruder")
extruder_stacks.append(self._container_registry.addExtruderStackForSingleExtrusionMachine(global_stack, "fdmextruder"))
except:
Logger.logException("w", "We failed to serialize the stack. Trying to clean up.")