// Copyright (c) 2018 Ultimaker B.V. // Cura is released under the terms of the LGPLv3 or higher. import QtQuick 2.7 import QtQuick.Controls 2.3 import UM 1.3 as UM import Cura 1.0 as Cura import "Recommended" import "Custom" Item { id: popup width: UM.Theme.getSize("print_setup_widget").width - 2 * UM.Theme.getSize("default_margin").width height: childrenRect.height property int currentModeIndex: -1 onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex) // Header of the popup Rectangle { id: header height: UM.Theme.getSize("print_setup_widget_header").height color: UM.Theme.getColor("action_button_hovered") // TODO: It's not clear the color that we need to use here anchors { top: parent.top right: parent.right left: parent.left } Label { id: headerLabel text: catalog.i18nc("@label", "Print settings") font: UM.Theme.getFont("default") renderType: Text.NativeRendering verticalAlignment: Text.AlignVCenter color: UM.Theme.getColor("text") height: parent.height anchors { topMargin: UM.Theme.getSize("sidebar_margin").height left: parent.left leftMargin: UM.Theme.getSize("narrow_margin").height } } Button { id: closeButton width: UM.Theme.getSize("message_close").width height: UM.Theme.getSize("message_close").height anchors { right: parent.right rightMargin: UM.Theme.getSize("default_margin").width verticalCenter: parent.verticalCenter } contentItem: UM.RecolorImage { anchors.fill: parent sourceSize.width: width sourceSize.height: width color: UM.Theme.getColor("message_text") source: UM.Theme.getIcon("cross1") } background: Item {} onClicked: togglePopup() // Will hide the popup item } } Rectangle { id: topSeparator anchors.bottom: header.bottom width: parent.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") } Item { id: contents height: childrenRect.height anchors { top: header.bottom left: parent.left right: parent.right } RecommendedPrintSetup { anchors { left: parent.left right: parent.right top: parent.top } onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() visible: currentModeIndex == 0 } CustomPrintSetup { anchors { left: parent.left right: parent.right top: parent.top } height: 500 onShowTooltip: base.showTooltip(item, location, text) onHideTooltip: base.hideTooltip() visible: currentModeIndex == 1 } } Rectangle { id: buttonsSeparator anchors.top: contents.bottom width: parent.width height: UM.Theme.getSize("default_lining").height color: UM.Theme.getColor("lining") } Item { id: buttonRow property real padding: UM.Theme.getSize("default_margin").width height: childrenRect.height + 2 * padding // The buttonsSeparator is inside the buttonRow. This is to avoid some weird behaviours with the scroll bar. anchors { top: buttonsSeparator.top left: parent.left right: parent.right } Cura.SecondaryButton { anchors.top: parent.top anchors.left: parent.left anchors.margins: parent.padding leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Recommended") iconSource: UM.Theme.getIcon("arrow_left") visible: currentModeIndex == 1 onClicked: currentModeIndex = 0 } Cura.SecondaryButton { anchors.top: parent.top anchors.right: parent.right anchors.margins: UM.Theme.getSize("default_margin").width leftPadding: UM.Theme.getSize("default_margin").width rightPadding: UM.Theme.getSize("default_margin").width text: catalog.i18nc("@button", "Custom") iconSource: UM.Theme.getIcon("arrow_right") iconOnRightSide: true visible: currentModeIndex == 0 onClicked: currentModeIndex = 1 } } Component.onCompleted: { var index = Math.round(UM.Preferences.getValue("cura/active_mode")) if(index != null && !isNaN(index)) { currentModeIndex = index } else { currentModeIndex = 0 } } }