mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00
Fix merge conflicts with master
This commit is contained in:
commit
94e89ad4ac
89 changed files with 1283 additions and 928 deletions
|
@ -174,7 +174,7 @@ class MachineManager(QObject):
|
|||
# Create the configuration model with the current data in Cura
|
||||
self._current_printer_configuration.printerType = self._global_container_stack.definition.getName()
|
||||
self._current_printer_configuration.extruderConfigurations = []
|
||||
for extruder in self._global_container_stack.extruders.values():
|
||||
for extruder in self._global_container_stack.extruderList:
|
||||
extruder_configuration = ExtruderConfigurationModel()
|
||||
# For compare just the GUID is needed at this moment
|
||||
mat_type = extruder.material.getMetaDataEntry("material") if extruder.material != empty_material_container else None
|
||||
|
@ -191,7 +191,8 @@ class MachineManager(QObject):
|
|||
|
||||
# An empty build plate configuration from the network printer is presented as an empty string, so use "" for an
|
||||
# empty build plate.
|
||||
self._current_printer_configuration.buildplateConfiguration = self._global_container_stack.getProperty("machine_buildplate_type", "value") if self._global_container_stack.variant != empty_variant_container else ""
|
||||
self._current_printer_configuration.buildplateConfiguration = self._global_container_stack.getProperty("machine_buildplate_type", "value")\
|
||||
if self._global_container_stack.variant != empty_variant_container else self._global_container_stack.getProperty("machine_buildplate_type", "default_value")
|
||||
self.currentConfigurationChanged.emit()
|
||||
|
||||
@pyqtSlot(QObject, result = bool)
|
||||
|
@ -635,7 +636,7 @@ class MachineManager(QObject):
|
|||
def isCurrentSetupSupported(self) -> bool:
|
||||
if not self._global_container_stack:
|
||||
return False
|
||||
for stack in [self._global_container_stack] + list(self._global_container_stack.extruders.values()):
|
||||
for stack in [self._global_container_stack] + self._global_container_stack.extruderList:
|
||||
for container in stack.getContainers():
|
||||
if not container:
|
||||
return False
|
||||
|
@ -661,8 +662,8 @@ class MachineManager(QObject):
|
|||
def copyAllValuesToExtruders(self) -> None:
|
||||
if self._active_container_stack is None or self._global_container_stack is None:
|
||||
return
|
||||
extruder_stacks = list(self._global_container_stack.extruders.values())
|
||||
for extruder_stack in extruder_stacks:
|
||||
|
||||
for extruder_stack in self._global_container_stack.extruderList:
|
||||
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")
|
||||
|
@ -793,8 +794,7 @@ class MachineManager(QObject):
|
|||
return True
|
||||
|
||||
buildplate_compatible = True # It is compatible by default
|
||||
extruder_stacks = self._global_container_stack.extruders.values()
|
||||
for stack in extruder_stacks:
|
||||
for stack in self._global_container_stack.extruderList:
|
||||
if not stack.isEnabled:
|
||||
continue
|
||||
material_container = stack.material
|
||||
|
@ -817,8 +817,8 @@ class MachineManager(QObject):
|
|||
# (material_left_compatible or material_left_usable) and
|
||||
# (material_right_compatible or material_right_usable)
|
||||
result = not self.variantBuildplateCompatible
|
||||
extruder_stacks = self._global_container_stack.extruders.values()
|
||||
for stack in extruder_stacks:
|
||||
|
||||
for stack in self._global_container_stack.extruderList:
|
||||
material_container = stack.material
|
||||
if material_container == empty_material_container:
|
||||
continue
|
||||
|
@ -854,7 +854,7 @@ class MachineManager(QObject):
|
|||
old_value = old_value(self._global_container_stack)
|
||||
if int(old_value) < 0:
|
||||
continue
|
||||
if int(old_value) >= extruder_count or not self._global_container_stack.extruders[str(old_value)].isEnabled:
|
||||
if int(old_value) >= extruder_count or not self._global_container_stack.extruderList[int(old_value)].isEnabled:
|
||||
result.append(setting_key)
|
||||
Logger.log("d", "Reset setting [%s] in [%s] because its old value [%s] is no longer valid", setting_key, container, old_value)
|
||||
return result
|
||||
|
@ -943,18 +943,21 @@ class MachineManager(QObject):
|
|||
@deprecated("use Cura.MachineManager.activeMachine.extruders instead", "4.2")
|
||||
def _getExtruder(self, position) -> Optional[ExtruderStack]:
|
||||
if self._global_container_stack:
|
||||
return self._global_container_stack.extruders.get(str(position))
|
||||
try:
|
||||
return self._global_container_stack.extruderList[int(position)]
|
||||
except IndexError:
|
||||
return None
|
||||
return None
|
||||
|
||||
def updateDefaultExtruder(self) -> None:
|
||||
if self._global_container_stack is None:
|
||||
return
|
||||
extruder_items = sorted(self._global_container_stack.extruders.items())
|
||||
|
||||
old_position = self._default_extruder_position
|
||||
new_default_position = "0"
|
||||
for position, extruder in extruder_items:
|
||||
for extruder in self._global_container_stack.extruderList:
|
||||
if extruder.isEnabled:
|
||||
new_default_position = position
|
||||
new_default_position = extruder.getMetaDataEntry("position", "0")
|
||||
break
|
||||
if new_default_position != old_position:
|
||||
self._default_extruder_position = new_default_position
|
||||
|
@ -966,7 +969,7 @@ class MachineManager(QObject):
|
|||
definition_changes_container = self._global_container_stack.definitionChanges
|
||||
machine_extruder_count = self._global_container_stack.getProperty("machine_extruder_count", "value")
|
||||
extruder_count = 0
|
||||
for position, extruder in self._global_container_stack.extruders.items():
|
||||
for position, extruder in enumerate(self._global_container_stack.extruderList):
|
||||
if extruder.isEnabled and int(position) < machine_extruder_count:
|
||||
extruder_count += 1
|
||||
if self.numberExtrudersEnabled != extruder_count:
|
||||
|
@ -990,7 +993,7 @@ class MachineManager(QObject):
|
|||
return
|
||||
with postponeSignals(*self._getContainerChangedSignals(), compress = CompressTechnique.CompressPerParameterValue):
|
||||
property_names = ["value", "resolve", "validationState"]
|
||||
for container in [self._global_container_stack] + list(self._global_container_stack.extruders.values()):
|
||||
for container in [self._global_container_stack] + self._global_container_stack.extruderList:
|
||||
for setting_key in container.getAllKeys():
|
||||
container.propertiesChanged.emit(setting_key, property_names)
|
||||
|
||||
|
@ -1041,7 +1044,7 @@ class MachineManager(QObject):
|
|||
def setSettingForAllExtruders(self, setting_name: str, property_name: str, property_value: str) -> None:
|
||||
if self._global_container_stack is None:
|
||||
return
|
||||
for key, extruder in self._global_container_stack.extruders.items():
|
||||
for extruder in self._global_container_stack.extruderList:
|
||||
container = extruder.userChanges
|
||||
container.setProperty(setting_name, property_name, property_value)
|
||||
|
||||
|
@ -1051,7 +1054,7 @@ class MachineManager(QObject):
|
|||
def resetSettingForAllExtruders(self, setting_name: str) -> None:
|
||||
if self._global_container_stack is None:
|
||||
return
|
||||
for key, extruder in self._global_container_stack.extruders.items():
|
||||
for extruder in self._global_container_stack.extruderList:
|
||||
container = extruder.userChanges
|
||||
container.removeInstance(setting_name)
|
||||
|
||||
|
@ -1069,8 +1072,9 @@ class MachineManager(QObject):
|
|||
changed = False
|
||||
|
||||
if self._global_container_stack:
|
||||
for position in self._global_container_stack.extruders:
|
||||
material_id = self._global_container_stack.extruders[position].material.getMetaDataEntry("base_file")
|
||||
for extruder in self._global_container_stack.extruderList:
|
||||
material_id = extruder.material.getMetaDataEntry("base_file")
|
||||
position = extruder.getMetaDataEntry("position")
|
||||
if position not in self._current_root_material_id or material_id != self._current_root_material_id[position]:
|
||||
changed = True
|
||||
self._current_root_material_id[position] = material_id
|
||||
|
@ -1105,7 +1109,7 @@ class MachineManager(QObject):
|
|||
return
|
||||
self._global_container_stack.quality = empty_quality_container
|
||||
self._global_container_stack.qualityChanges = empty_quality_changes_container
|
||||
for extruder in self._global_container_stack.extruders.values():
|
||||
for extruder in self._global_container_stack.extruderList:
|
||||
extruder.quality = empty_quality_container
|
||||
extruder.qualityChanges = empty_quality_changes_container
|
||||
|
||||
|
@ -1221,7 +1225,7 @@ class MachineManager(QObject):
|
|||
self._global_container_stack.extruders[position].material = material_container
|
||||
root_material_id = material_container.getMetaDataEntry("base_file", None)
|
||||
else:
|
||||
self._global_container_stack.extruders[position].material = empty_material_container
|
||||
self._global_container_stack.extruderList[int(position)].material = empty_material_container
|
||||
root_material_id = None
|
||||
# The _current_root_material_id is used in the MaterialMenu to see which material is selected
|
||||
if root_material_id != self._current_root_material_id[position]:
|
||||
|
@ -1232,7 +1236,7 @@ class MachineManager(QObject):
|
|||
# Check material - variant compatibility
|
||||
if self._global_container_stack is not None:
|
||||
if Util.parseBool(self._global_container_stack.getMetaDataEntry("has_materials", False)):
|
||||
for position, extruder in self._global_container_stack.extruders.items():
|
||||
for extruder in self._global_container_stack.extruderList:
|
||||
if not extruder.isEnabled:
|
||||
continue
|
||||
if not extruder.material.getMetaDataEntry("compatible"):
|
||||
|
@ -1311,7 +1315,10 @@ class MachineManager(QObject):
|
|||
position_list = [position]
|
||||
|
||||
for position_item in position_list:
|
||||
extruder = self._global_container_stack.extruders[position_item]
|
||||
try:
|
||||
extruder = self._global_container_stack.extruderList[int(position_item)]
|
||||
except IndexError:
|
||||
continue
|
||||
|
||||
current_material_base_name = extruder.material.getMetaDataEntry("base_file")
|
||||
current_nozzle_name = None
|
||||
|
@ -1389,7 +1396,7 @@ class MachineManager(QObject):
|
|||
extruders_to_disable.add(extruder_configuration.position)
|
||||
|
||||
# If there's no material and/or nozzle on the printer, enable the first extruder and disable the rest.
|
||||
if len(extruders_to_disable) == len(self._global_container_stack.extruders):
|
||||
if len(extruders_to_disable) == len(self._global_container_stack.extruderList):
|
||||
extruders_to_disable.remove(min(extruders_to_disable))
|
||||
|
||||
for extruder_configuration in configuration.extruderConfigurations:
|
||||
|
@ -1397,7 +1404,7 @@ class MachineManager(QObject):
|
|||
|
||||
# If the machine doesn't have a hotend or material, disable this extruder
|
||||
if int(position) in extruders_to_disable:
|
||||
self._global_container_stack.extruders[position].setEnabled(False)
|
||||
self._global_container_stack.extruderList[int(position)].setEnabled(False)
|
||||
|
||||
need_to_show_message = True
|
||||
disabled_used_extruder_position_set.add(int(position))
|
||||
|
@ -1430,7 +1437,7 @@ class MachineManager(QObject):
|
|||
# Show human-readable extruder names such as "Extruder Left", "Extruder Front" instead of "Extruder 1, 2, 3".
|
||||
extruder_names = []
|
||||
for extruder_position in sorted(disabled_used_extruder_position_set):
|
||||
extruder_stack = self._global_container_stack.extruders[str(extruder_position)]
|
||||
extruder_stack = self._global_container_stack.extruderList[int(extruder_position)]
|
||||
extruder_name = extruder_stack.definition.getName()
|
||||
extruder_names.append(extruder_name)
|
||||
extruders_str = ", ".join(extruder_names)
|
||||
|
@ -1458,7 +1465,7 @@ class MachineManager(QObject):
|
|||
|
||||
machine_definition_id = self._global_container_stack.definition.id
|
||||
position = str(position)
|
||||
extruder_stack = self._global_container_stack.extruders[position]
|
||||
extruder_stack = self._global_container_stack.extruderList[int(position)]
|
||||
nozzle_name = extruder_stack.variant.getName()
|
||||
material_node = ContainerTree.getInstance().machines[machine_definition_id].variants[nozzle_name].materials[root_material_id]
|
||||
self.setMaterial(position, material_node)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue