Show color + material in menus and Materials page

CURA-2108
This commit is contained in:
fieldOfView 2016-08-22 17:34:33 +02:00
parent cb6353ba2a
commit 3671d241d5
2 changed files with 12 additions and 21 deletions

View file

@ -56,14 +56,14 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
super().setMetaDataEntry(key, value) super().setMetaDataEntry(key, value)
if key == "material": if key == "material" or key == "color_name":
self.setName(value) self.setName(self._profile_name(self.getMetaDataEntry("material"), self.getMetaDataEntry("color_name")))
basefile = self.getMetaDataEntry("base_file", self._id) #if basefile is none, this is a basefile. basefile = self.getMetaDataEntry("base_file", self._id) #if basefile is none, this is a basefile.
# Update all containers that share GUID and basefile # Update all containers that share GUID and basefile
for container in UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(GUID = self.getMetaDataEntry("GUID"), base_file = basefile): for container in UM.Settings.ContainerRegistry.getInstance().findInstanceContainers(GUID = self.getMetaDataEntry("GUID"), base_file = basefile):
container.setMetaData(copy.deepcopy(self._metadata)) container.setMetaData(copy.deepcopy(self._metadata))
if key == "material": if key == "material" or key == "color_name":
container.setName(value) container.setName(self.getName())
## Overridden from InstanceContainer ## Overridden from InstanceContainer
def setProperty(self, key, property_name, property_value, container = None): def setProperty(self, key, property_name, property_value, container = None):
@ -236,7 +236,7 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
material = entry.find("./um:material", self.__namespaces) material = entry.find("./um:material", self.__namespaces)
color = entry.find("./um:color", self.__namespaces) color = entry.find("./um:color", self.__namespaces)
self.setName(material.text) self.setName(self._profile_name(material.text, color.text))
self.addMetaDataEntry("brand", brand.text) self.addMetaDataEntry("brand", brand.text)
self.addMetaDataEntry("material", material.text) self.addMetaDataEntry("material", material.text)
@ -368,6 +368,12 @@ class XmlMaterialProfile(UM.Settings.InstanceContainer):
builder.data(str(instance.value)) builder.data(str(instance.value))
builder.end("setting") builder.end("setting")
def _profile_name(self, material_name, color_name):
if color_name != "Generic":
return "%s %s" % (color_name, material_name)
else:
return material_name
# Map XML file setting names to internal names # Map XML file setting names to internal names
__material_property_setting_map = { __material_property_setting_map = {
"print temperature": "material_print_temperature", "print temperature": "material_print_temperature",

View file

@ -36,22 +36,7 @@ Menu
} }
MenuItem MenuItem
{ {
text: text: model.name
{
var result = model.name
if(model.metadata.brand != undefined && model.metadata.brand != "Generic")
{
result = model.metadata.brand + " " + result
}
if(model.metadata.color_name != undefined && model.metadata.color_name != "Generic")
{
result = result + " (%1)".arg(model.metadata.color_name)
}
return result
}
checkable: true; checkable: true;
checked: model.id == Cura.MachineManager.activeMaterialId; checked: model.id == Cura.MachineManager.activeMaterialId;
exclusiveGroup: group; exclusiveGroup: group;