mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-16 03:07:53 -06:00
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:
parent
687cdcc30e
commit
ee3e0ba6ab
3 changed files with 47 additions and 1 deletions
|
@ -323,6 +323,28 @@ class PrinterOutputDevice(QObject, OutputDevice):
|
||||||
result.append(i18n_catalog.i18nc("@item:material", "Unknown material"))
|
result.append(i18n_catalog.i18nc("@item:material", "Unknown material"))
|
||||||
return result
|
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.
|
## Protected setter for the current material id.
|
||||||
# /param index Index of the extruder
|
# /param index Index of the extruder
|
||||||
# /param material_id id of the material
|
# /param material_id id of the material
|
||||||
|
|
|
@ -110,6 +110,30 @@ Column
|
||||||
anchors.top: parent.top
|
anchors.top: parent.top
|
||||||
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
anchors.topMargin: UM.Theme.getSize("default_margin").height
|
||||||
}
|
}
|
||||||
|
Rectangle //Material colour indication.
|
||||||
|
{
|
||||||
|
id: materialColor
|
||||||
|
width: materialName.height * 0.75
|
||||||
|
height: materialName.height * 0.75
|
||||||
|
color: printerConnected ? connectedPrinter.materialColors[index] : [0, 0, 0, 0] //Need to check for printerConnected or materialColors[index] gives an error.
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: UM.Theme.getColor("lining")
|
||||||
|
visible: printerConnected
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
anchors.verticalCenter: materialName.verticalCenter
|
||||||
|
}
|
||||||
|
Text //Material name.
|
||||||
|
{
|
||||||
|
id: materialName
|
||||||
|
text: printerConnected ? connectedPrinter.materialNames[index] : ""
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
color: UM.Theme.getColor("text")
|
||||||
|
anchors.left: materialColor.right
|
||||||
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
||||||
|
anchors.bottom: parent.bottom
|
||||||
|
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -255,7 +255,7 @@
|
||||||
"sidebar_setup": [0.0, 2.0],
|
"sidebar_setup": [0.0, 2.0],
|
||||||
"sidebar_tabs": [0.0, 3.5],
|
"sidebar_tabs": [0.0, 3.5],
|
||||||
"sidebar_inputfields": [0.0, 2.0],
|
"sidebar_inputfields": [0.0, 2.0],
|
||||||
"sidebar_extruder_box": [0.0, 4.0],
|
"sidebar_extruder_box": [0.0, 6.0],
|
||||||
"simple_mode_infill_caption": [0.0, 5.0],
|
"simple_mode_infill_caption": [0.0, 5.0],
|
||||||
"simple_mode_infill_height": [0.0, 8.0],
|
"simple_mode_infill_height": [0.0, 8.0],
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue