123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346 |
- // Copyright (c) 2017 Ultimaker B.V.
- // Cura is released under the terms of the AGPLv3 or higher.
- import QtQuick 2.2
- import QtQuick.Controls 1.1
- import QtQuick.Controls.Styles 1.1
- import UM 1.2 as UM
- import Cura 1.0 as Cura
- import "Menus"
- Column
- {
- id: base;
- property int currentExtruderIndex: ExtruderManager.activeExtruderIndex;
- property bool currentExtruderVisible: extrudersList.visible;
- spacing: UM.Theme.getSize("default_margin").height
- signal showTooltip(Item item, point location, string text)
- signal hideTooltip()
- Item
- {
- id: extruderSelectionRow
- width: parent.width
- height: UM.Theme.getSize("sidebar_tabs").height
- visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
- Rectangle
- {
- id: extruderSeparator
- visible: machineExtruderCount.properties.value > 1 && !sidebar.monitoringPrint
- width: parent.width
- height: parent.height
- color: UM.Theme.getColor("sidebar_lining")
- anchors.top: extruderSelectionRow.top
- }
- ListView
- {
- id: extrudersList
- property var index: 0
- height: UM.Theme.getSize("sidebar_header_mode_tabs").height
- width: parent.width
- boundsBehavior: Flickable.StopAtBounds
- anchors
- {
- left: parent.left
- right: parent.right
- bottom: extruderSelectionRow.bottom
- }
- ExclusiveGroup { id: extruderMenuGroup; }
- 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);
- }
- }
- 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
- {
- 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: highlight
- visible: control.checked
- anchors.left: parent.left
- anchors.right: parent.right
- anchors.top: parent.top
- height: UM.Theme.getSize("sidebar_header_highlight").height
- color: UM.Theme.getColor("sidebar_header_bar")
- }
- 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")
- }
- Text
- {
- 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 { }
- }
- }
- }
- }
- Item
- {
- id: variantRowSpacer
- height: UM.Theme.getSize("default_margin").height / 4
- width: height
- visible: !extruderSelectionRow.visible
- }
- // Print core row
- Item
- {
- id: printCoreRow
- height: UM.Theme.getSize("sidebar_setup").height
- visible: Cura.MachineManager.hasVariants && !sidebar.monitoringPrint && !sidebar.hideSettings
- anchors
- {
- left: parent.left
- leftMargin: UM.Theme.getSize("default_margin").width
- right: parent.right
- rightMargin: UM.Theme.getSize("default_margin").width
- }
- Text
- {
- id: printCoreLabel
- text: Cura.MachineManager.activeDefinitionVariantsName;
- width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width
- font: UM.Theme.getFont("default");
- color: UM.Theme.getColor("text");
- }
- ToolButton {
- id: printCoreSelection
- text: Cura.MachineManager.activeVariantName
- tooltip: Cura.MachineManager.activeVariantName;
- visible: Cura.MachineManager.hasVariants
- height: UM.Theme.getSize("setting_control").height
- width: parent.width * 0.7 + UM.Theme.getSize("default_margin").width
- anchors.right: parent.right
- style: UM.Theme.styles.sidebar_header_button
- activeFocusOnPress: true;
- menu: NozzleMenu { extruderIndex: base.currentExtruderIndex }
- }
- }
- // Material Row
- Item
- {
- id: materialRow
- height: UM.Theme.getSize("sidebar_setup").height
- visible: Cura.MachineManager.hasMaterials && !sidebar.monitoringPrint && !sidebar.hideSettings
- anchors
- {
- left: parent.left
- leftMargin: UM.Theme.getSize("default_margin").width
- right: parent.right
- rightMargin: UM.Theme.getSize("default_margin").width
- }
- Text
- {
- id: materialLabel
- text: catalog.i18nc("@label","Material");
- width: parent.width * 0.45 - UM.Theme.getSize("default_margin").width
- font: UM.Theme.getFont("default");
- color: UM.Theme.getColor("text");
- }
- ToolButton {
- id: materialSelection
- text: Cura.MachineManager.activeMaterialName
- tooltip: Cura.MachineManager.activeMaterialName
- visible: Cura.MachineManager.hasMaterials
- property var valueError:
- {
- var data = Cura.ContainerManager.getContainerMetaDataEntry(Cura.MachineManager.activeMaterialId, "compatible")
- if(data == "False")
- {
- return true
- }
- else
- {
- return false
- }
- }
- property var valueWarning: ! Cura.MachineManager.isActiveQualitySupported
- enabled: !extrudersList.visible || base.currentExtruderIndex > -1
- height: UM.Theme.getSize("setting_control").height
- width: parent.width * 0.7 + UM.Theme.getSize("default_margin").width
- anchors.right: parent.right
- style: UM.Theme.styles.sidebar_header_button
- activeFocusOnPress: true;
- menu: MaterialMenu { extruderIndex: base.currentExtruderIndex }
- }
- }
- // Material info row
- Item
- {
- id: materialInfoRow
- height: UM.Theme.getSize("sidebar_setup").height
- visible: (Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials) && !sidebar.monitoringPrint && !sidebar.hideSettings
- anchors
- {
- left: parent.left
- leftMargin: UM.Theme.getSize("default_margin").width
- right: parent.right
- rightMargin: UM.Theme.getSize("default_margin").width
- }
- Item
- {
- height: UM.Theme.getSize("sidebar_setup").height
- anchors.right: parent.right
- width: parent.width * 0.7 + UM.Theme.getSize("default_margin").width
- Text
- {
- id: materialInfoLabel
- wrapMode: Text.WordWrap
- text: catalog.i18nc("@label", "Check material compability");
- font: UM.Theme.getFont("default");
- verticalAlignment: Text.AlignVCenter
- anchors.top: parent.top
- anchors.bottom: parent.bottom
- color: UM.Theme.getColor("text")
- MouseArea
- {
- anchors.fill: parent
- hoverEnabled: true
- onClicked:
- {
- // open the material URL with web browser
- var version = UM.Application.version;
- var machineName = Cura.MachineManager.activeMachine.definition.id;
- var url = "https://ultimaker.com/materialcompatibility/" + version + "/" + machineName;
- Qt.openUrlExternally(url);
- }
- onEntered:
- {
- var content = catalog.i18nc("@tooltip", "Click to check the material compatibility on Ultimaker.com.");
- base.showTooltip(
- materialInfoRow,
- Qt.point(-UM.Theme.getSize("default_margin").width, 0),
- catalog.i18nc("@tooltip", content)
- );
- }
- onExited: base.hideTooltip();
- }
- }
- UM.RecolorImage
- {
- id: warningImage
- anchors.right: parent.right
- anchors.verticalCenter: parent.Bottom
- source: UM.Theme.getIcon("warning")
- width: UM.Theme.getSize("section_icon").width
- height: UM.Theme.getSize("section_icon").height
- //sourceSize.width: width + 5
- //sourceSize.height: width + 5
- color: UM.Theme.getColor("setting_validation_warning")
- visible: !Cura.MachineManager.isActiveQualitySupported
- }
- }
- }
- UM.SettingPropertyProvider
- {
- id: machineExtruderCount
- containerStackId: Cura.MachineManager.activeMachineId
- key: "machine_extruder_count"
- watchedProperties: [ "value" ]
- storeIndex: 0
- }
- UM.I18nCatalog { id: catalog; name:"cura" }
- }
|