diff --git a/cura/QualityManager.py b/cura/QualityManager.py index c356951156..09e9d283ed 100644 --- a/cura/QualityManager.py +++ b/cura/QualityManager.py @@ -131,7 +131,8 @@ class QualityManager: # # \param global_container_stack \type{ContainerStack} the global machine definition # \param extruder_stacks \type{List[ContainerStack]} the list of extruder stacks - # \return \type{List[InstanceContainer]} the list of the matching qualities + # \return \type{List[InstanceContainer]} the list of the matching qualities. The quality profiles + # return come from the first extruder in the given list of extruders. def findAllUsableQualitiesForMachineAndExtruders(self, global_container_stack, extruder_stacks): global_machine_definition = global_container_stack.getBottom() diff --git a/cura/Settings/ProfilesModel.py b/cura/Settings/ProfilesModel.py index 5b82ce9221..8c0cb1a93c 100644 --- a/cura/Settings/ProfilesModel.py +++ b/cura/Settings/ProfilesModel.py @@ -28,5 +28,14 @@ class ProfilesModel(InstanceContainersModel): if global_container_stack is None: return [] + # Get the list of extruders and place the selected extruder at the front of the list. + extruder_manager = ExtruderManager.getInstance() + active_extruder = extruder_manager.getActiveExtruderStack() + extruder_stacks = extruder_manager.getActiveExtruderStacks() + extruder_stacks.remove(active_extruder) + extruder_stacks = [active_extruder] + 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. return QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, - ExtruderManager.getInstance().getActiveExtruderStacks()) + extruder_stacks) diff --git a/cura/Settings/QualityAndUserProfilesModel.py b/cura/Settings/QualityAndUserProfilesModel.py index dcb6c698cf..3ca5507c5b 100644 --- a/cura/Settings/QualityAndUserProfilesModel.py +++ b/cura/Settings/QualityAndUserProfilesModel.py @@ -25,9 +25,17 @@ class QualityAndUserProfilesModel(ProfilesModel): machine_definition = quality_manager.getParentMachineDefinition(global_container_stack.getBottom()) quality_changes_list = quality_manager.findAllQualityChangesForMachine(machine_definition) - # Fetch the list of qualities + # Get the list of extruders and place the selected extruder at the front of the list. + extruder_manager = ExtruderManager.getInstance() + active_extruder = extruder_manager.getActiveExtruderStack() + extruder_stacks = extruder_manager.getActiveExtruderStacks() + extruder_stacks.remove(active_extruder) + extruder_stacks = [active_extruder] + 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. quality_list = QualityManager.getInstance().findAllUsableQualitiesForMachineAndExtruders(global_container_stack, - ExtruderManager.getInstance().getActiveExtruderStacks()) + extruder_stacks) # Filter the quality_change by the list of available quality_types quality_type_set = set([x.getMetaDataEntry("quality_type") for x in quality_list])