Layout changes, extruders are now displayed as extruder tabs. CURA-2763

This commit is contained in:
Jack Ha 2016-12-06 15:49:34 +01:00
parent a65a81e60b
commit 30a74fb2c1
2 changed files with 105 additions and 82 deletions

View File

@ -61,103 +61,123 @@ Column
} }
} }
ListView Row
{ {
id: extrudersList id: extruderSelectionRow
property var index: 0 height: UM.Theme.getSize("sidebar_tabs").height
visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
height: UM.Theme.getSize("sidebar_header_mode_toggle").height
boundsBehavior: Flickable.StopAtBounds
anchors anchors
{ {
left: parent.left left: parent.left
leftMargin: UM.Theme.getSize("default_margin").width
right: parent.right right: parent.right
rightMargin: UM.Theme.getSize("default_margin").width
} }
ExclusiveGroup { id: extruderMenuGroup; } Rectangle
orientation: ListView.Horizontal
model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false }
Connections
{ {
target: Cura.MachineManager anchors.verticalCenter: parent.verticalCenter
onGlobalContainerChanged:
{ width: parent.width
forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. height: parent.height
var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 color: UM.Theme.getColor("tab_background")
ExtruderManager.setActiveExtruderIndex(extruder_index);
}
} }
delegate: Button ListView
{ {
height: ListView.view.height id: extrudersList
width: ListView.view.width / extrudersModel.rowCount() property var index: 0
text: model.name visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
tooltip: model.name height: UM.Theme.getSize("sidebar_header_mode_tabs").height
exclusiveGroup: extruderMenuGroup
checked: base.currentExtruderIndex == index
onClicked: boundsBehavior: Flickable.StopAtBounds
anchors
{ {
forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. left: parent.left
ExtruderManager.setActiveExtruderIndex(index); right: parent.right
bottom: parent.bottom
} }
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("tab_checked_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 { }
} }
} }
} }

View File

@ -94,17 +94,18 @@
"toggle_active_text": [24, 41, 77, 255], "toggle_active_text": [24, 41, 77, 255],
"tab_checked": [255, 255, 255, 255], "tab_checked": [255, 255, 255, 255],
"tab_checked_border": [24, 41, 77, 255], "tab_checked_border": [255, 255, 255, 255],
"tab_checked_text": [24, 41, 77, 255], "tab_checked_text": [24, 41, 77, 255],
"tab_unchecked": [224, 224, 224, 255], "tab_unchecked": [224, 224, 224, 255],
"tab_unchecked_border": [224, 224, 224, 255], "tab_unchecked_border": [224, 224, 224, 255],
"tab_unchecked_text": [24, 41, 77, 255], "tab_unchecked_text": [152, 152, 152, 255],
"tab_hovered": [240, 240, 240, 255], "tab_hovered": [240, 240, 240, 255],
"tab_hovered_border": [128, 128, 128, 255], "tab_hovered_border": [240, 240, 240, 255],
"tab_hovered_text": [24, 41, 77, 255], "tab_hovered_text": [32, 166, 219, 255],
"tab_active": [255, 255, 255, 255], "tab_active": [255, 255, 255, 255],
"tab_active_border": [24, 41, 77, 255], "tab_active_border": [255, 255, 255, 255],
"tab_active_text": [24, 41, 77, 255], "tab_active_text": [24, 41, 77, 255],
"tab_background": [245, 245, 245, 255],
"action_button": [255, 255, 255, 255], "action_button": [255, 255, 255, 255],
"action_button_text": [24, 41, 77, 255], "action_button_text": [24, 41, 77, 255],
@ -206,8 +207,10 @@
"sidebar_header": [0.0, 4.0], "sidebar_header": [0.0, 4.0],
"sidebar_header_highlight": [0.5, 0.5], "sidebar_header_highlight": [0.5, 0.5],
"sidebar_header_mode_toggle": [0.0, 2.0], "sidebar_header_mode_toggle": [0.0, 2.0],
"sidebar_header_mode_tabs": [0.0, 3.0],
"sidebar_lining": [0.5, 0.5], "sidebar_lining": [0.5, 0.5],
"sidebar_setup": [0.0, 2.0], "sidebar_setup": [0.0, 2.0],
"sidebar_tabs": [0.0, 4.0],
"sidebar_inputfields": [0.0, 2.0], "sidebar_inputfields": [0.0, 2.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],