Don't crash when finding duplicated materials

Only report it to the user.

Contributes to issue CURA-5045.
This commit is contained in:
Ghostkeeper 2018-03-27 13:57:52 +02:00
parent 593c80225d
commit 027f4b44bb
No known key found for this signature in database
GPG Key ID: 5252B696FB5E7C7A

View File

@ -9,6 +9,7 @@ from typing import Optional, TYPE_CHECKING
from PyQt5.Qt import QTimer, QObject, pyqtSignal, pyqtSlot from PyQt5.Qt import QTimer, QObject, pyqtSignal, pyqtSlot
from UM.Application import Application from UM.Application import Application
from UM.ConfigurationErrorMessage import ConfigurationErrorMessage
from UM.Logger import Logger from UM.Logger import Logger
from UM.Settings.ContainerRegistry import ContainerRegistry from UM.Settings.ContainerRegistry import ContainerRegistry
from UM.Settings.SettingFunction import SettingFunction from UM.Settings.SettingFunction import SettingFunction
@ -205,12 +206,10 @@ class MaterialManager(QObject):
machine_node.children_map[variant_name] = MaterialNode() machine_node.children_map[variant_name] = MaterialNode()
variant_node = machine_node.children_map[variant_name] variant_node = machine_node.children_map[variant_name]
if root_material_id not in variant_node.material_map: if root_material_id in variant_node.material_map: #We shouldn't have duplicated variant-specific materials for the same machine.
variant_node.material_map[root_material_id] = MaterialNode(material_metadata) ConfigurationErrorMessage.getInstance().addFaultyContainers(root_material_id)
else: continue
# Sanity check: make sure we don't have duplicated variant-specific materials for the same machine variant_node.material_map[root_material_id] = MaterialNode(material_metadata)
raise RuntimeError("Found duplicate variant name [%s] for machine [%s] in material [%s]" %
(variant_name, definition, material_metadata["id"]))
self.materialsUpdated.emit() self.materialsUpdated.emit()