mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-13 20:35:53 +08:00
Add selection "tab" for active extruder
Only visible for multi-extrusion printers. Doesn't do anything but setting a qml property, but is to be used to change the variant/material per extruder, and to apply a filter to the advanced mode settings. CURA-340
This commit is contained in:
parent
85370dad87
commit
f0b956c3c6
@ -16,6 +16,7 @@ Item
|
|||||||
property Action configureMachinesAction;
|
property Action configureMachinesAction;
|
||||||
UM.I18nCatalog { id: catalog; name:"cura"}
|
UM.I18nCatalog { id: catalog; name:"cura"}
|
||||||
property int totalHeightHeader: childrenRect.height
|
property int totalHeightHeader: childrenRect.height
|
||||||
|
property int currentExtruderIndex;
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: sidebarTabRow
|
id: sidebarTabRow
|
||||||
@ -87,9 +88,89 @@ Item
|
|||||||
}
|
}
|
||||||
|
|
||||||
Rectangle {
|
Rectangle {
|
||||||
id: variantRow
|
id: extruderSelection
|
||||||
|
width: parent.width/100*55
|
||||||
|
visible: machineExtruderCount.properties.value > 1
|
||||||
|
height: visible ? UM.Theme.getSize("sidebar_header_mode_toggle").height : 0
|
||||||
|
anchors.right: parent.right
|
||||||
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
||||||
anchors.top: machineSelectionRow.bottom
|
anchors.top: machineSelectionRow.bottom
|
||||||
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
||||||
|
Component{
|
||||||
|
id: wizardDelegate
|
||||||
|
Button {
|
||||||
|
height: extruderSelection.height
|
||||||
|
anchors.left: parent.left
|
||||||
|
anchors.leftMargin: model.index * (extruderSelection.width / machineExtruderCount.properties.value)
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: parent.width / machineExtruderCount.properties.value
|
||||||
|
text: model.text
|
||||||
|
exclusiveGroup: extruderMenuGroup;
|
||||||
|
checkable: true;
|
||||||
|
checked: base.currentExtruderIndex == index
|
||||||
|
onClicked: base.currentExtruderIndex = index
|
||||||
|
|
||||||
|
style: ButtonStyle {
|
||||||
|
background: Rectangle {
|
||||||
|
border.width: UM.Theme.getSize("default_lining").width
|
||||||
|
border.color: control.checked ? UM.Theme.getColor("toggle_checked_border") :
|
||||||
|
control.pressed ? UM.Theme.getColor("toggle_active_border") :
|
||||||
|
control.hovered ? UM.Theme.getColor("toggle_hovered_border") : UM.Theme.getColor("toggle_unchecked_border")
|
||||||
|
color: control.checked ? UM.Theme.getColor("toggle_checked") :
|
||||||
|
control.pressed ? UM.Theme.getColor("toggle_active") :
|
||||||
|
control.hovered ? UM.Theme.getColor("toggle_hovered") : UM.Theme.getColor("toggle_unchecked")
|
||||||
|
Behavior on color { ColorAnimation { duration: 50; } }
|
||||||
|
Label {
|
||||||
|
anchors.centerIn: parent
|
||||||
|
color: control.checked ? UM.Theme.getColor("toggle_checked_text") :
|
||||||
|
control.pressed ? UM.Theme.getColor("toggle_active_text") :
|
||||||
|
control.hovered ? UM.Theme.getColor("toggle_hovered_text") : UM.Theme.getColor("toggle_unchecked_text")
|
||||||
|
font: UM.Theme.getFont("default")
|
||||||
|
text: control.text;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
label: Item { }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
ExclusiveGroup { id: extruderMenuGroup; }
|
||||||
|
ListView{
|
||||||
|
id: extrudersList
|
||||||
|
property var index: 0
|
||||||
|
model: extrudersListModel
|
||||||
|
delegate: wizardDelegate
|
||||||
|
anchors.top: parent.top
|
||||||
|
anchors.left: parent.left
|
||||||
|
width: parent.width
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
ListModel
|
||||||
|
{
|
||||||
|
id: extrudersListModel
|
||||||
|
Component.onCompleted: populateExtruderModel()
|
||||||
|
}
|
||||||
|
Connections
|
||||||
|
{
|
||||||
|
id: machineChange
|
||||||
|
target: Cura.MachineManager
|
||||||
|
onGlobalContainerChanged: populateExtruderModel()
|
||||||
|
}
|
||||||
|
|
||||||
|
function populateExtruderModel()
|
||||||
|
{
|
||||||
|
extrudersListModel.clear();
|
||||||
|
for(var extruder = 0; extruder < machineExtruderCount.properties.value ; extruder++) {
|
||||||
|
extrudersListModel.append({
|
||||||
|
text: catalog.i18nc("@label", "Extruder %1").arg(extruder + 1)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: variantRow
|
||||||
|
anchors.top: extruderSelection.visible ? extruderSelection.bottom : machineSelectionRow.bottom
|
||||||
|
anchors.topMargin: visible ? UM.Theme.getSize("default_margin").height : 0
|
||||||
width: base.width
|
width: base.width
|
||||||
height: visible ? UM.Theme.getSize("sidebar_setup").height : 0
|
height: visible ? UM.Theme.getSize("sidebar_setup").height : 0
|
||||||
visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials
|
visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials
|
||||||
@ -214,4 +295,14 @@ Item
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UM.SettingPropertyProvider
|
||||||
|
{
|
||||||
|
id: machineExtruderCount
|
||||||
|
|
||||||
|
containerStackId: Cura.MachineManager.activeMachineId
|
||||||
|
key: "machine_extruder_count"
|
||||||
|
watchedProperties: [ "value" ]
|
||||||
|
storeIndex: 0
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user