Cannot do it simpler. CURA-2763

This commit is contained in:
Jack Ha 2016-12-07 15:40:25 +01:00
parent 4ecd1a0fe3
commit 7694b8f128

View File

@ -61,111 +61,120 @@ Column
} }
} }
/*Rectangle Row
{ {
id: extruderSeparator id: extruderSelectionRow
// anchors.verticalCenter: parent.verticalCenter
// anchors.top: machineSelectionRow.bottom
width: parent.width width: parent.width
height: UM.Theme.getSize("sidebar_lining").height height: UM.Theme.getSize("sidebar_tabs").height
color: UM.Theme.getColor("sidebar_lining") visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
}*/
ListView Rectangle
{
id: extrudersList
property var index: 0
height: UM.Theme.getSize("sidebar_header_mode_tabs").height
boundsBehavior: Flickable.StopAtBounds
anchors
{ {
left: parent.left id: extruderSeparator
right: parent.right visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
width: parent.width
height: parent.height
color: UM.Theme.getColor("sidebar_lining")
anchors.top: extruderSelectionRow.top
} }
ExclusiveGroup { id: extruderMenuGroup; } ListView
orientation: ListView.Horizontal
model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false }
Connections
{ {
target: Cura.MachineManager id: extrudersList
onGlobalContainerChanged: property var index: 0
height: UM.Theme.getSize("sidebar_header_mode_tabs").height
boundsBehavior: Flickable.StopAtBounds
anchors
{ {
forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. left: parent.left
var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 right: parent.right
ExtruderManager.setActiveExtruderIndex(extruder_index); bottom: extruderSelectionRow.bottom
}
}
delegate: Button
{
height: ListView.view.height
width: ListView.view.width / extrudersModel.rowCount()
text: model.name
tooltip: model.name
exclusiveGroup: extruderMenuGroup
checked: base.currentExtruderIndex == index
onClicked:
{
forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values.
ExtruderManager.setActiveExtruderIndex(index);
} }
style: ButtonStyle ExclusiveGroup { id: extruderMenuGroup; }
orientation: ListView.Horizontal
model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false }
Connections
{ {
background: Rectangle target: Cura.MachineManager
onGlobalContainerChanged:
{ {
border.width: UM.Theme.getSize("default_lining").width forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values.
border.color: control.checked ? UM.Theme.getColor("tab_checked_border") : var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0
control.pressed ? UM.Theme.getColor("tab_active_border") : ExtruderManager.setActiveExtruderIndex(extruder_index);
control.hovered ? UM.Theme.getColor("tab_hovered_border") : UM.Theme.getColor("tab_unchecked_border") }
color: control.checked ? UM.Theme.getColor("tab_checked") : }
control.pressed ? UM.Theme.getColor("tab_active") :
control.hovered ? UM.Theme.getColor("tab_hovered") : UM.Theme.getColor("tab_unchecked") delegate: Button
Behavior on color { ColorAnimation { duration: 50; } } {
height: ListView.view.height
Rectangle width: ListView.view.width / extrudersModel.rowCount()
{
id: swatch text: model.name
visible: index > -1 tooltip: model.name
height: UM.Theme.getSize("setting_control").height / 2 exclusiveGroup: extruderMenuGroup
width: height checked: base.currentExtruderIndex == index
anchors.left: parent.left
anchors.leftMargin: (parent.height - height) / 2 onClicked:
anchors.verticalCenter: parent.verticalCenter {
forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values.
color: model.color ExtruderManager.setActiveExtruderIndex(index);
border.width: UM.Theme.getSize("default_lining").width }
border.color: UM.Theme.getColor("setting_control_border")
} style: ButtonStyle
{
Label background: Rectangle
{ {
anchors.verticalCenter: parent.verticalCenter border.width: UM.Theme.getSize("default_lining").width
anchors.left: swatch.visible ? swatch.right : parent.left border.color: control.checked ? UM.Theme.getColor("tab_checked_border") :
anchors.leftMargin: swatch.visible ? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("default_margin").width control.pressed ? UM.Theme.getColor("tab_active_border") :
anchors.right: parent.right control.hovered ? UM.Theme.getColor("tab_hovered_border") : UM.Theme.getColor("tab_unchecked_border")
anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2 color: control.checked ? UM.Theme.getColor("tab_checked") :
control.pressed ? UM.Theme.getColor("tab_active") :
color: control.checked ? UM.Theme.getColor("tab_checked_text") : control.hovered ? UM.Theme.getColor("tab_hovered") : UM.Theme.getColor("tab_unchecked")
control.pressed ? UM.Theme.getColor("tab_active_text") : Behavior on color { ColorAnimation { duration: 50; } }
control.hovered ? UM.Theme.getColor("tab_hovered_text") : UM.Theme.getColor("tab_unchecked_text")
Rectangle
font: UM.Theme.getFont("default") {
text: control.text id: swatch
elide: Text.ElideRight visible: index > -1
} height: UM.Theme.getSize("setting_control").height / 2
width: height
anchors.left: parent.left
anchors.leftMargin: (parent.height - height) / 2
anchors.verticalCenter: parent.verticalCenter
color: model.color
border.width: UM.Theme.getSize("default_lining").width
border.color: UM.Theme.getColor("setting_control_border")
}
Label
{
anchors.verticalCenter: parent.verticalCenter
anchors.left: swatch.visible ? swatch.right : parent.left
anchors.leftMargin: swatch.visible ? UM.Theme.getSize("default_margin").width / 2 : UM.Theme.getSize("default_margin").width
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("default_margin").width / 2
color: control.checked ? UM.Theme.getColor("tab_checked_text") :
control.pressed ? UM.Theme.getColor("tab_active_text") :
control.hovered ? UM.Theme.getColor("tab_hovered_text") : UM.Theme.getColor("tab_unchecked_text")
font: UM.Theme.getFont("default")
text: control.text
elide: Text.ElideRight
}
}
label: Item { }
} }
label: Item { }
} }
} }
} }
@ -183,7 +192,6 @@ Column
leftMargin: UM.Theme.getSize("default_margin").width leftMargin: UM.Theme.getSize("default_margin").width
right: parent.right right: parent.right
rightMargin: UM.Theme.getSize("default_margin").width rightMargin: UM.Theme.getSize("default_margin").width
top: extrudersList.bottom
} }
Label Label