diff --git a/resources/qml/SidebarHeader.qml b/resources/qml/SidebarHeader.qml index 105431c3ee..b0b2527357 100644 --- a/resources/qml/SidebarHeader.qml +++ b/resources/qml/SidebarHeader.qml @@ -61,11 +61,25 @@ Column } } - Row + /*Rectangle { - id: extruderSelectionRow - height: UM.Theme.getSize("sidebar_tabs").height - visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint + id: extruderSeparator + // anchors.verticalCenter: parent.verticalCenter + // anchors.top: machineSelectionRow.bottom + + width: parent.width + height: UM.Theme.getSize("sidebar_lining").height + color: UM.Theme.getColor("sidebar_lining") + }*/ + + ListView + { + id: extrudersList + property var index: 0 + + height: UM.Theme.getSize("sidebar_header_mode_tabs").height + + boundsBehavior: Flickable.StopAtBounds anchors { @@ -73,111 +87,85 @@ Column right: parent.right } - Rectangle - { - anchors.verticalCenter: parent.verticalCenter + ExclusiveGroup { id: extruderMenuGroup; } - width: parent.width - height: parent.height - color: UM.Theme.getColor("tab_background") + orientation: ListView.Horizontal + + model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } + + Connections + { + target: Cura.MachineManager + onGlobalContainerChanged: + { + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 + ExtruderManager.setActiveExtruderIndex(extruder_index); + } } - ListView + delegate: Button { - id: extrudersList - property var index: 0 + height: ListView.view.height + width: ListView.view.width / extrudersModel.rowCount() - height: UM.Theme.getSize("sidebar_header_mode_tabs").height + text: model.name + tooltip: model.name + exclusiveGroup: extruderMenuGroup + checked: base.currentExtruderIndex == index - boundsBehavior: Flickable.StopAtBounds - - anchors + onClicked: { - left: parent.left - right: parent.right - bottom: parent.bottom + forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. + ExtruderManager.setActiveExtruderIndex(index); } - ExclusiveGroup { id: extruderMenuGroup; } - - orientation: ListView.Horizontal - - model: Cura.ExtrudersModel { id: extrudersModel; addGlobal: false } - - Connections + style: ButtonStyle { - target: Cura.MachineManager - onGlobalContainerChanged: + background: Rectangle { - forceActiveFocus() // Changing focus applies the currently-being-typed values so it can change the displayed setting values. - var extruder_index = (machineExtruderCount.properties.value == 1) ? -1 : 0 - ExtruderManager.setActiveExtruderIndex(extruder_index); - } - } + border.width: UM.Theme.getSize("default_lining").width + border.color: control.checked ? UM.Theme.getColor("tab_checked_border") : + control.pressed ? UM.Theme.getColor("tab_active_border") : + 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") + Behavior on color { ColorAnimation { duration: 50; } } - 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 - { - background: Rectangle + Rectangle { + id: swatch + 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: control.checked ? UM.Theme.getColor("tab_checked_border") : - control.pressed ? UM.Theme.getColor("tab_active_border") : - 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") - Behavior on color { ColorAnimation { duration: 50; } } - - Rectangle - { - id: swatch - 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 - } + 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 { } } } } @@ -195,6 +183,7 @@ Column leftMargin: UM.Theme.getSize("default_margin").width right: parent.right rightMargin: UM.Theme.getSize("default_margin").width + top: extrudersList.bottom } Label