Add Section Header and Section Setting item components.

Upgrade Adhesion to use new components

CURA-9793
This commit is contained in:
Joey de l'Arago 2022-11-24 17:24:28 +01:00
parent a7dc1b24bc
commit ac2e733ea6
4 changed files with 127 additions and 69 deletions

View file

@ -1,4 +1,4 @@
// Copyright (c) 2018 Ultimaker B.V.
// Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
@ -7,74 +7,21 @@ import UM 1.5 as UM
import Cura 1.0 as Cura
//
// Adhesion
//
Item
RecommendedSettingSection
{
id: enableAdhesionRow
height: enableAdhesionContainer.height
property real labelColumnWidth: Math.round(width / 3)
title: catalog.i18nc("@label", "Adhesion")
icon: UM.Theme.getIcon("Adhesion")
enableSectionVisible: platformAdhesionType.properties.enabled == "True"
enableSectionChecked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none"
enableSectionEnabled: recommendedPrintSetup.settingsEnabled
property var curaRecommendedMode: Cura.RecommendedMode {}
Cura.IconWithText
{
id: enableAdhesionRowTitle
anchors.top: parent.top
anchors.left: parent.left
source: UM.Theme.getIcon("Adhesion")
text: catalog.i18nc("@label", "Adhesion")
font: UM.Theme.getFont("medium")
width: labelColumnWidth
iconSize: UM.Theme.getSize("medium_button_icon").width
}
Item
{
id: enableAdhesionContainer
height: enableAdhesionCheckBox.height
anchors
{
left: enableAdhesionRowTitle.right
right: parent.right
verticalCenter: enableAdhesionRowTitle.verticalCenter
}
UM.CheckBox
{
id: enableAdhesionCheckBox
anchors.verticalCenter: parent.verticalCenter
//: Setting enable printing build-plate adhesion helper checkbox
enabled: recommendedPrintSetup.settingsEnabled
visible: platformAdhesionType.properties.enabled == "True"
checked: platformAdhesionType.properties.value != "skirt" && platformAdhesionType.properties.value != "none"
MouseArea
{
id: adhesionMouseArea
anchors.fill: parent
hoverEnabled: true
// propagateComposedEvents used on adhesionTooltipMouseArea does not work with Controls Components.
// It only works with other MouseAreas, so this is required
onClicked: curaRecommendedMode.setAdhesion(!parent.checked)
}
}
}
MouseArea
{
id: adhesionTooltipMouseArea
anchors.fill: parent
propagateComposedEvents: true
hoverEnabled: true
onEntered:base.showTooltip(enableAdhesionCheckBox, Qt.point(-enableAdhesionContainer.x - UM.Theme.getSize("thick_margin").width, 0),
catalog.i18nc("@label", "Enable printing a brim or raft. This will add a flat area around or under your object which is easy to cut off afterwards."));
onExited: base.hideTooltip()
function onEnableSectionChanged(state) {
curaRecommendedMode.setAdhesion(state)
}
UM.SettingPropertyProvider