diff --git a/cura/Settings/ContainerManager.py b/cura/Settings/ContainerManager.py index e70e307079..09a6bb5bb6 100644 --- a/cura/Settings/ContainerManager.py +++ b/cura/Settings/ContainerManager.py @@ -294,7 +294,7 @@ class ContainerManager(QObject): current_quality_changes_name = global_stack.qualityChanges.getName() current_quality_type = global_stack.quality.getMetaDataEntry("quality_type") - extruder_stacks = list(global_stack.extruders.values()) + extruder_stacks = global_stack.extruderList container_registry = cura.CuraApplication.CuraApplication.getInstance().getContainerRegistry() machine_definition_id = ContainerTree.getInstance().machines[global_stack.definition.getId()].quality_definition for stack in [global_stack] + extruder_stacks: @@ -335,8 +335,7 @@ class ContainerManager(QObject): # Go through global and extruder stacks and clear their topmost container (the user settings). global_stack = machine_manager.activeMachine - extruder_stacks = list(global_stack.extruders.values()) - for stack in [global_stack] + extruder_stacks: + for stack in [global_stack] + global_stack.extruderList: container = stack.userChanges container.clear() send_emits_containers.append(container) diff --git a/cura/Settings/PerObjectContainerStack.py b/cura/Settings/PerObjectContainerStack.py index a4f1f6ed06..fa2b8f5ec9 100644 --- a/cura/Settings/PerObjectContainerStack.py +++ b/cura/Settings/PerObjectContainerStack.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018 Ultimaker B.V. +# Copyright (c) 2020 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. from typing import Any, Optional @@ -45,13 +45,13 @@ class PerObjectContainerStack(CuraContainerStack): if "original_limit_to_extruder" in context.context: limit_to_extruder = context.context["original_limit_to_extruder"] - if limit_to_extruder is not None and limit_to_extruder != "-1" and limit_to_extruder in global_stack.extruders: + if limit_to_extruder is not None and limit_to_extruder != "-1" and int(limit_to_extruder) <= len(global_stack.extruderList): # set the original limit_to_extruder if this is the first stack that has a non-overridden limit_to_extruder if "original_limit_to_extruder" not in context.context: context.context["original_limit_to_extruder"] = limit_to_extruder if super().getProperty(key, "settable_per_extruder", context): - result = global_stack.extruders[str(limit_to_extruder)].getProperty(key, property_name, context) + result = global_stack.extruderList[int(limit_to_extruder)].getProperty(key, property_name, context) if result is not None: context.popContainer() return result