Browse Source

Fix setting number of extruders when hasVariants is set

fieldOfView 7 years ago
parent
commit
98b127851b

+ 16 - 0
cura/Settings/MachineManager.py

@@ -525,6 +525,22 @@ class MachineManager(QObject):
 
         return ""
 
+    @pyqtProperty("QVariantMap", notify = activeVariantChanged)
+    def allActiveVariantIds(self):
+        if not self._global_container_stack:
+            return {}
+
+        result = {}
+
+        for stack in ExtruderManager.getInstance().getActiveGlobalAndExtruderStacks():
+            variant_container = stack.variant
+            if not variant_container:
+                continue
+
+            result[stack.getId()] = variant_container.getId()
+
+        return result
+
     @pyqtProperty("QVariantMap", notify = activeMaterialChanged)
     def allActiveMaterialIds(self):
         if not self._global_container_stack:

+ 1 - 1
plugins/MachineSettingsAction/MachineSettingsAction.py

@@ -153,7 +153,7 @@ class MachineSettingsAction(MachineAction):
             if machine_manager.hasMaterials:
                 extruder_material_id = machine_manager.allActiveMaterialIds[extruder_manager.extruderIds["0"]]
             if machine_manager.hasVariants:
-                extruder_variant_id = machine_manager.activeVariantIds[0]
+                extruder_variant_id = machine_manager.allActiveVariantIds[extruder_manager.extruderIds["0"]]
 
             # Copy any settable_per_extruder setting value from the extruders to the global stack
             extruder_stacks = ExtruderManager.getInstance().getActiveExtruderStacks()