Browse Source

Fix filtering custom profiles per extruder - CURA-4482

ChrisTerBeke 7 years ago
parent
commit
62d70b46d6
2 changed files with 4 additions and 20 deletions
  1. 3 12
      cura/QualityManager.py
  2. 1 8
      cura/Settings/UserProfilesModel.py

+ 3 - 12
cura/QualityManager.py

@@ -183,20 +183,11 @@ class QualityManager:
 
         materials = []
 
-        # TODO: fix this
-        if extruder_stacks:
-            # Multi-extruder machine detected
-            for stack in extruder_stacks:
-                if stack.getId() == active_stack_id and machine_manager.newMaterial:
-                    materials.append(machine_manager.newMaterial)
-                else:
-                    materials.append(stack.material)
-        else:
-            # Machine with one extruder
-            if global_container_stack.getId() == active_stack_id and machine_manager.newMaterial:
+        for stack in extruder_stacks:
+            if stack.getId() == active_stack_id and machine_manager.newMaterial:
                 materials.append(machine_manager.newMaterial)
             else:
-                materials.append(global_container_stack.material)
+                materials.append(stack.material)
 
         quality_types = self.findAllQualityTypesForMachineAndMaterials(global_machine_definition, materials)
 

+ 1 - 8
cura/Settings/UserProfilesModel.py

@@ -24,9 +24,6 @@ class UserProfilesModel(ProfilesModel):
         quality_manager = QualityManager.getInstance()
         machine_definition = quality_manager.getParentMachineDefinition(global_container_stack.definition)
         quality_changes_list = quality_manager.findAllQualityChangesForMachine(machine_definition)
-
-        extruder_manager = ExtruderManager.getInstance()
-        active_extruder = extruder_manager.getActiveExtruderStack()
         extruder_stacks = self._getOrderedExtruderStacksList()
 
         # Fetch the list of usable qualities across all extruders.
@@ -35,10 +32,6 @@ class UserProfilesModel(ProfilesModel):
 
         # Filter the quality_change by the list of available quality_types
         quality_type_set = set([x.getMetaDataEntry("quality_type") for x in quality_list])
-        filtered_quality_changes = [qc for qc in quality_changes_list if
-                                    qc.getMetaDataEntry("quality_type") in quality_type_set and
-                                    qc.getMetaDataEntry("extruder") is not None and
-                                    (qc.getMetaDataEntry("extruder") == active_extruder.definition.getMetaDataEntry("quality_definition") or
-                                     qc.getMetaDataEntry("extruder") == active_extruder.definition.getId())]
+        filtered_quality_changes = [qc for qc in quality_changes_list if qc.getMetaDataEntry("quality_type") in quality_type_set]
 
         return filtered_quality_changes