Add material indication to extruder boxes

Only if a material is known of course. But the case where it is unknown is not tested.

Contributes to issue CURA-3161.
This commit is contained in:
Ghostkeeper 2017-02-03 14:52:09 +01:00
parent 687cdcc30e
commit ee3e0ba6ab
No known key found for this signature in database
GPG key ID: C5F96EE2BC0F7E75
3 changed files with 47 additions and 1 deletions

View file

@ -323,6 +323,28 @@ class PrinterOutputDevice(QObject, OutputDevice):
result.append(i18n_catalog.i18nc("@item:material", "Unknown material"))
return result
## List of the colours of the currently loaded materials.
#
# The list is in order of extruders. If there is no material in an
# extruder, the colour is shown as transparent.
#
# The colours are returned in hex-format AARRGGBB or RRGGBB
# (e.g. #800000ff for transparent blue or #00ff00 for pure green).
@pyqtProperty("QVariantList", notify = materialIdChanged)
def materialColors(self):
result = []
for material_id in self._material_ids:
if material_id is None:
result.append("#800000FF") #No material.
continue
containers = self._container_registry.findInstanceContainers(type = "material", GUID = material_id)
if containers:
result.append(containers[0].getMetaDataEntry("color_code"))
else:
result.append("#800000FF") #Unknown material.
return result
## Protected setter for the current material id.
# /param index Index of the extruder
# /param material_id id of the material