Merge pull request #3507 from guillemavila/Copy-all-values-to-all-extruders

add Copy all values to all extruders
This commit is contained in:
Lipu Fei 2018-03-22 16:16:30 +01:00 committed by GitHub
commit fd2abdd9fb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 0 deletions

View File

@ -597,6 +597,18 @@ class MachineManager(QObject):
if extruder_stack != self._active_container_stack and extruder_stack.getProperty(key, "value") != new_value:
extruder_stack.userChanges.setProperty(key, "value", new_value) # TODO: nested property access, should be improved
## Copy the value of all manually changed settings of the current extruder to all other extruders.
@pyqtSlot()
def copyAllValuesToExtruders(self):
extruder_stacks = list(self._global_container_stack.extruders.values())
for extruder_stack in extruder_stacks:
if extruder_stack != self._active_container_stack:
for key in self._active_container_stack.userChanges.getAllKeys():
new_value = self._active_container_stack.getProperty(key, "value")
# check if the value has to be replaced
extruder_stack.userChanges.setProperty(key, "value", new_value)
@pyqtProperty(str, notify = activeVariantChanged)
def activeVariantName(self) -> str:
if self._active_container_stack:

View File

@ -533,6 +533,15 @@ Item
onTriggered: Cura.MachineManager.copyValueToExtruders(contextMenu.key)
}
MenuItem
{
//: Settings context menu action
text: catalog.i18nc("@action:menu", "Copy all changed values to all extruders")
visible: machineExtruderCount.properties.value > 1
enabled: contextMenu.provider != undefined
onTriggered: Cura.MachineManager.copyAllValuesToExtruders()
}
MenuSeparator
{
visible: machineExtruderCount.properties.value > 1