diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index c155783417..fe35673f16 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -778,6 +778,12 @@ class MachineManager(QObject): stacks.append(self._global_container_stack) return [ s.containersChanged for s in stacks ] + @pyqtSlot(str, str, str) + def setSettingForAllExtruders(self, setting_name: str, property_name: str, property_value: str): + for key, extruder in self._global_container_stack.extruders.items(): + container = extruder.userChanges + container.setProperty(setting_name, property_name, property_value) + # # New # diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 877e3a1557..507091a721 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -518,8 +518,7 @@ Item // Update the slider value to represent the rounded value infillSlider.value = roundedSliderValue - // Explicitly cast to string to make sure the value passed to Python is an integer. - infillDensity.setPropertyValue("value", String(roundedSliderValue)) + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue) } style: SliderStyle @@ -649,14 +648,20 @@ Item onClicked: { // Set to 90% only when enabling gradual infill + var newInfillDensity; if (parseInt(infillSteps.properties.value) == 0) { previousInfillDensity = parseInt(infillDensity.properties.value) - infillDensity.setPropertyValue("value", String(90)) + newInfillDensity = 90; } else { - infillDensity.setPropertyValue("value", String(previousInfillDensity)) + newInfillDensity = previousInfillDensity; } + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) - infillSteps.setPropertyValue("value", (parseInt(infillSteps.properties.value) == 0) ? 5 : 0) + var infill_steps_value = 0; + if (parseInt(infillSteps.properties.value) == 0) + infill_steps_value = 5; + + Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) } onEntered: {