From e533c4604c55ae8d1a659e8d29277848e6b37625 Mon Sep 17 00:00:00 2001 From: Aleksei S Date: Wed, 28 Feb 2018 10:52:46 +0100 Subject: [PATCH 1/3] Update infill scroll bar if setting is changed in custom mode CURA-4916 --- cura/Settings/MachineManager.py | 6 ++++++ resources/qml/SidebarSimple.qml | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index cc5c4aa539..d802c9d142 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1490,3 +1490,9 @@ class MachineManager(QObject): stacks = ExtruderManager.getInstance().getActiveExtruderStacks() 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.getContainer(0) + container.setProperty(setting_name, property_name, property_value) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index ae9fe57b64..6630291e56 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -524,6 +524,8 @@ Item // 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 @@ -656,11 +658,19 @@ Item if (parseInt(infillSteps.properties.value) == 0) { previousInfillDensity = parseInt(infillDensity.properties.value) infillDensity.setPropertyValue("value", String(90)) + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(90)) } else { infillDensity.setPropertyValue("value", String(previousInfillDensity)) + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(previousInfillDensity)) } - 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; + + infillSteps.setPropertyValue("value", infill_steps_value) + + Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) } onEntered: { From 7f5bb70bee1a0489e5e26413f61f13df78d09dc1 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 28 Feb 2018 12:45:58 +0100 Subject: [PATCH 2/3] Remove redundant setProperties CURA-4916 --- resources/qml/SidebarSimple.qml | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 6630291e56..dc8549f282 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -522,9 +522,6 @@ 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) } @@ -655,21 +652,19 @@ 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)) - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(90)) + newInfillDensity = 90; } else { - infillDensity.setPropertyValue("value", String(previousInfillDensity)) - Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(previousInfillDensity)) + newInfillDensity = previousInfillDensity; } + Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", String(newInfillDensity)) var infill_steps_value = 0; if (parseInt(infillSteps.properties.value) == 0) infill_steps_value = 5; - infillSteps.setPropertyValue("value", infill_steps_value) - Cura.MachineManager.setSettingForAllExtruders("gradual_infill_steps", "value", infill_steps_value) } From ab4cfa5fbbfa75075045ac021cb23a76cf4db9e2 Mon Sep 17 00:00:00 2001 From: Lipu Fei Date: Wed, 28 Feb 2018 12:49:37 +0100 Subject: [PATCH 3/3] Use userChanges instead of getContainer(0) CURA-4916 --- cura/Settings/MachineManager.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cura/Settings/MachineManager.py b/cura/Settings/MachineManager.py index d802c9d142..6cdb9322b6 100755 --- a/cura/Settings/MachineManager.py +++ b/cura/Settings/MachineManager.py @@ -1494,5 +1494,5 @@ class MachineManager(QObject): @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.getContainer(0) + container = extruder.userChanges container.setProperty(setting_name, property_name, property_value)