diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 331292e255..fb3e107ee6 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -100,8 +100,12 @@ class ProfilesModel(InstanceContainersModel): extruder_stacks = extruder_manager.getActiveExtruderStacks() if multiple_extrusion: # Place the active extruder at the front of the list. - extruder_stacks.remove(active_extruder) - extruder_stacks = [active_extruder] + extruder_stacks + if active_extruder in extruder_stacks: + extruder_stacks.remove(active_extruder) + new_extruder_stacks = [] + if active_extruder is not None: + new_extruder_stacks = [active_extruder] + extruder_stacks = new_extruder_stacks + extruder_stacks # Get a list of usable/available qualities for this machine and material qualities = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, diff --git a/cura/Settings/UserProfilesModel.py b/cura/Settings/UserProfilesModel.py index b9710f7df2..223900306b 100644 --- a/cura/Settings/UserProfilesModel.py +++ b/cura/Settings/UserProfilesModel.py @@ -33,8 +33,12 @@ class UserProfilesModel(ProfilesModel): extruder_stacks = extruder_manager.getActiveExtruderStacks() if multiple_extrusion: # Place the active extruder at the front of the list. - extruder_stacks.remove(active_extruder) - extruder_stacks = [active_extruder] + extruder_stacks + if active_extruder in extruder_stacks: + extruder_stacks.remove(active_extruder) + new_extruder_stacks = [] + if active_extruder is not None: + new_extruder_stacks = [active_extruder] + extruder_stacks = new_extruder_stacks + extruder_stacks # Fetch the list of useable qualities across all extruders. # The actual list of quality profiles come from the first extruder in the extruder list.