mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-07 06:57:28 -06:00
Add extruder swatches to object selector
This commit is contained in:
parent
2eeabec317
commit
e13a0bca4a
3 changed files with 44 additions and 2 deletions
|
@ -40,6 +40,7 @@ class ObjectsModel(ListModel):
|
||||||
NodeRole = Qt.UserRole + 5
|
NodeRole = Qt.UserRole + 5
|
||||||
PerObjectSettingsCountRole = Qt.UserRole + 6
|
PerObjectSettingsCountRole = Qt.UserRole + 6
|
||||||
MeshTypeRole = Qt.UserRole + 7
|
MeshTypeRole = Qt.UserRole + 7
|
||||||
|
ExtruderNumberRole = Qt.UserRole + 8
|
||||||
|
|
||||||
def __init__(self, parent = None) -> None:
|
def __init__(self, parent = None) -> None:
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
|
@ -48,6 +49,7 @@ class ObjectsModel(ListModel):
|
||||||
self.addRoleName(self.SelectedRole, "selected")
|
self.addRoleName(self.SelectedRole, "selected")
|
||||||
self.addRoleName(self.OutsideAreaRole, "outside_build_area")
|
self.addRoleName(self.OutsideAreaRole, "outside_build_area")
|
||||||
self.addRoleName(self.BuilplateNumberRole, "buildplate_number")
|
self.addRoleName(self.BuilplateNumberRole, "buildplate_number")
|
||||||
|
self.addRoleName(self.ExtruderNumberRole, "extruder_number")
|
||||||
self.addRoleName(self.PerObjectSettingsCountRole, "per_object_settings_count")
|
self.addRoleName(self.PerObjectSettingsCountRole, "per_object_settings_count")
|
||||||
self.addRoleName(self.MeshTypeRole, "mesh_type")
|
self.addRoleName(self.MeshTypeRole, "mesh_type")
|
||||||
self.addRoleName(self.NodeRole, "node")
|
self.addRoleName(self.NodeRole, "node")
|
||||||
|
@ -189,11 +191,17 @@ class ObjectsModel(ListModel):
|
||||||
per_object_settings_count -= 1 # do not count this mesh type setting
|
per_object_settings_count -= 1 # do not count this mesh type setting
|
||||||
break
|
break
|
||||||
|
|
||||||
|
extruder_number = int(node.callDecoration("getActiveExtruderPosition"))
|
||||||
|
if node_mesh_type == "anti_overhang_mesh":
|
||||||
|
# for anti overhang meshes, the extruder nr is irrelevant
|
||||||
|
extruder_number = -1
|
||||||
|
|
||||||
nodes.append({
|
nodes.append({
|
||||||
"name": node.getName(),
|
"name": node.getName(),
|
||||||
"selected": Selection.isSelected(node),
|
"selected": Selection.isSelected(node),
|
||||||
"outside_build_area": is_outside_build_area,
|
"outside_build_area": is_outside_build_area,
|
||||||
"buildplate_number": node_build_plate_number,
|
"buildplate_number": node_build_plate_number,
|
||||||
|
"extruder_number": extruder_number,
|
||||||
"per_object_settings_count": per_object_settings_count,
|
"per_object_settings_count": per_object_settings_count,
|
||||||
"mesh_type": node_mesh_type,
|
"mesh_type": node_mesh_type,
|
||||||
"node": node
|
"node": node
|
||||||
|
|
|
@ -23,13 +23,26 @@ Button
|
||||||
width: objectItemButton.width - objectItemButton.leftPadding
|
width: objectItemButton.width - objectItemButton.leftPadding
|
||||||
height: UM.Theme.getSize("action_button").height
|
height: UM.Theme.getSize("action_button").height
|
||||||
|
|
||||||
|
UM.RecolorImage
|
||||||
|
{
|
||||||
|
id: swatch
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
anchors.left: parent.left
|
||||||
|
width: height
|
||||||
|
height: parent.height - UM.Theme.getSize("narrow_margin").height
|
||||||
|
source: UM.Theme.getIcon("extruder_button")
|
||||||
|
color: extruderColor
|
||||||
|
visible: showExtruderSwatches && extruderColor != ""
|
||||||
|
}
|
||||||
|
|
||||||
Label
|
Label
|
||||||
{
|
{
|
||||||
id: buttonText
|
id: buttonText
|
||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
left: parent.left
|
left: showExtruderSwatches ? swatch.right : parent.left
|
||||||
right: perObjectSettingsInfo.left
|
leftMargin: showExtruderSwatches ? UM.Theme.getSize("narrow_margin").width : 0
|
||||||
|
right: perObjectSettingsInfo.visible ? perObjectSettingsInfo.left : parent.right
|
||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
text: objectItemButton.text
|
text: objectItemButton.text
|
||||||
|
|
|
@ -87,6 +87,17 @@ Item
|
||||||
|
|
||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
|
|
||||||
|
property var extrudersModel: CuraApplication.getExtrudersModel()
|
||||||
|
UM.SettingPropertyProvider
|
||||||
|
{
|
||||||
|
id: machineExtruderCount
|
||||||
|
|
||||||
|
containerStack: Cura.MachineManager.activeMachine
|
||||||
|
key: "machine_extruder_count"
|
||||||
|
watchedProperties: [ "value" ]
|
||||||
|
storeIndex: 0
|
||||||
|
}
|
||||||
|
|
||||||
ListView
|
ListView
|
||||||
{
|
{
|
||||||
id: listView
|
id: listView
|
||||||
|
@ -123,6 +134,16 @@ Item
|
||||||
property bool outsideBuildArea: model.outside_build_area
|
property bool outsideBuildArea: model.outside_build_area
|
||||||
property int perObjectSettingsCount: model.per_object_settings_count
|
property int perObjectSettingsCount: model.per_object_settings_count
|
||||||
property string meshType: model.mesh_type
|
property string meshType: model.mesh_type
|
||||||
|
property int extruderNumber: model.extruder_number
|
||||||
|
property string extruderColor:
|
||||||
|
{
|
||||||
|
if (model.extruder_number == -1)
|
||||||
|
{
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
return contents.extrudersModel.getItem(model.extruder_number).color;
|
||||||
|
}
|
||||||
|
property bool showExtruderSwatches: machineExtruderCount.properties.value > 1
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue