mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-25 15:44:04 -06:00
Merge branch 'master' of github.com:Ultimaker/Cura
This commit is contained in:
commit
aa8d91faf6
3 changed files with 19 additions and 6 deletions
|
@ -348,15 +348,18 @@ class ContainerManager(QObject):
|
||||||
#
|
#
|
||||||
# \param material_id \type{str} the id of the material for which to get the linked materials.
|
# \param material_id \type{str} the id of the material for which to get the linked materials.
|
||||||
# \return \type{list} a list of names of materials with the same GUID
|
# \return \type{list} a list of names of materials with the same GUID
|
||||||
@pyqtSlot("QVariant", result = "QStringList")
|
@pyqtSlot("QVariant", bool, result = "QStringList")
|
||||||
def getLinkedMaterials(self, material_node):
|
def getLinkedMaterials(self, material_node, exclude_self = False):
|
||||||
guid = material_node.metadata["GUID"]
|
guid = material_node.metadata["GUID"]
|
||||||
|
|
||||||
|
self_root_material_id = material_node.metadata["base_file"]
|
||||||
material_group_list = self._material_manager.getMaterialGroupListByGUID(guid)
|
material_group_list = self._material_manager.getMaterialGroupListByGUID(guid)
|
||||||
|
|
||||||
linked_material_names = []
|
linked_material_names = []
|
||||||
if material_group_list:
|
if material_group_list:
|
||||||
for material_group in material_group_list:
|
for material_group in material_group_list:
|
||||||
|
if exclude_self and material_group.name == self_root_material_id:
|
||||||
|
continue
|
||||||
linked_material_names.append(material_group.root_material_node.metadata["name"])
|
linked_material_names.append(material_group.root_material_node.metadata["name"])
|
||||||
return linked_material_names
|
return linked_material_names
|
||||||
|
|
||||||
|
|
|
@ -280,6 +280,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
# Check if any quality_changes instance container is in conflict.
|
# Check if any quality_changes instance container is in conflict.
|
||||||
instance_container_files = [name for name in cura_file_names if name.endswith(self._instance_container_suffix)]
|
instance_container_files = [name for name in cura_file_names if name.endswith(self._instance_container_suffix)]
|
||||||
quality_name = ""
|
quality_name = ""
|
||||||
|
custom_quality_name = ""
|
||||||
num_settings_overriden_by_quality_changes = 0 # How many settings are changed by the quality changes
|
num_settings_overriden_by_quality_changes = 0 # How many settings are changed by the quality changes
|
||||||
num_user_settings = 0
|
num_user_settings = 0
|
||||||
quality_changes_conflict = False
|
quality_changes_conflict = False
|
||||||
|
@ -292,7 +293,14 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
container_id = self._stripFileToId(instance_container_file_name)
|
container_id = self._stripFileToId(instance_container_file_name)
|
||||||
|
|
||||||
serialized = archive.open(instance_container_file_name).read().decode("utf-8")
|
serialized = archive.open(instance_container_file_name).read().decode("utf-8")
|
||||||
serialized = InstanceContainer._updateSerialized(serialized, instance_container_file_name)
|
|
||||||
|
# Qualities and variants don't have upgrades, so don't upgrade them
|
||||||
|
parser = ConfigParser(interpolation = None)
|
||||||
|
parser.read_string(serialized)
|
||||||
|
container_type = parser["metadata"]["type"]
|
||||||
|
if container_type not in ("quality", "variant"):
|
||||||
|
serialized = InstanceContainer._updateSerialized(serialized, instance_container_file_name)
|
||||||
|
|
||||||
parser = ConfigParser(interpolation = None)
|
parser = ConfigParser(interpolation = None)
|
||||||
parser.read_string(serialized)
|
parser.read_string(serialized)
|
||||||
container_info = ContainerInfo(instance_container_file_name, serialized, parser)
|
container_info = ContainerInfo(instance_container_file_name, serialized, parser)
|
||||||
|
@ -309,7 +317,7 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
position = parser["metadata"]["position"]
|
position = parser["metadata"]["position"]
|
||||||
self._machine_info.quality_changes_info.extruder_info_dict[position] = container_info
|
self._machine_info.quality_changes_info.extruder_info_dict[position] = container_info
|
||||||
|
|
||||||
quality_name = parser["general"]["name"]
|
custom_quality_name = parser["general"]["name"]
|
||||||
values = parser["values"] if parser.has_section("values") else dict()
|
values = parser["values"] if parser.has_section("values") else dict()
|
||||||
num_settings_overriden_by_quality_changes += len(values)
|
num_settings_overriden_by_quality_changes += len(values)
|
||||||
# Check if quality changes already exists.
|
# Check if quality changes already exists.
|
||||||
|
@ -473,6 +481,8 @@ class ThreeMFWorkspaceReader(WorkspaceReader):
|
||||||
|
|
||||||
extruders = num_extruders * [""]
|
extruders = num_extruders * [""]
|
||||||
|
|
||||||
|
quality_name = custom_quality_name if custom_quality_name else quality_name
|
||||||
|
|
||||||
self._machine_info.container_id = global_stack_id
|
self._machine_info.container_id = global_stack_id
|
||||||
self._machine_info.name = machine_name
|
self._machine_info.name = machine_name
|
||||||
self._machine_info.definition_id = machine_definition_id
|
self._machine_info.definition_id = machine_definition_id
|
||||||
|
|
|
@ -36,8 +36,8 @@ TabView
|
||||||
if (!base.containerId || !base.editingEnabled) {
|
if (!base.containerId || !base.editingEnabled) {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
var linkedMaterials = Cura.ContainerManager.getLinkedMaterials(base.currentMaterialNode);
|
var linkedMaterials = Cura.ContainerManager.getLinkedMaterials(base.currentMaterialNode, true);
|
||||||
if (linkedMaterials.length <= 1) {
|
if (linkedMaterials.length == 0) {
|
||||||
return ""
|
return ""
|
||||||
}
|
}
|
||||||
return linkedMaterials.join(", ");
|
return linkedMaterials.join(", ");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue