Switch to column layout in RecommendedPrintSetup.qml so that left margins can be put on infill selector and items below it.

Add warning and reset button when custom profile is select and/or settings have been changed

CURA-8849
This commit is contained in:
j.delarago 2022-06-15 10:48:04 +02:00
parent 5fa10b0b8a
commit 8362d4c967
3 changed files with 129 additions and 5 deletions

View File

@ -0,0 +1,108 @@
import QtQuick 2.10
import UM 1.6 as UM
import Cura 1.6 as Cura
Rectangle
{
height: visible ? UM.Theme.getSize("action_button_icon").height : 0
visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.MachineManager.hasCustomQuality
anchors.topMargin: UM.Theme.getSize("default_margin")
anchors.bottomMargin: UM.Theme.getSize("default_margin")
Rectangle
{
id: warningIcon
color: UM.Theme.getColor("um_yellow_5")
height: UM.Theme.getSize("action_button_icon").height
width: height
radius: width
anchors
{
left: parent.left
verticalCenter: parent.verticalCenter
}
UM.ColorImage
{
height: UM.Theme.getSize("action_button_icon").height
width: height
source: UM.Theme.getIcon("Warning", "low")
}
}
UM.Label
{
id: warning
anchors
{
left: warningIcon.right
verticalCenter: parent.verticalCenter
leftMargin: UM.Theme.getSize("thin_margin").width
}
text: ""
states: [
State
{
name: "settings changed and custom quality"
when: Cura.SimpleModeSettingsManager.isProfileCustomized && Cura.MachineManager.hasCustomQuality
PropertyChanges
{
target: warning
text: {
var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
return "<b>%1</b> %2".arg(profile_name).arg(catalog.i18nc("@info", "custom profile is active and you overwrote some settings."))
}
}
},
State
{
name: "custom quality"
when: Cura.MachineManager.hasCustomQuality
PropertyChanges
{
target: warning
text: {
var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
return "<b>%1</b> %2".arg(profile_name).arg(catalog.i18nc("@info", "custom profile is overriding some settings."))
}
}
},
State
{
name: "settings changed"
when: Cura.SimpleModeSettingsManager.isProfileCustomized
PropertyChanges
{
target: warning
text: catalog.i18nc("@info", "Some settings were changed.")
}
}
]
}
UM.SimpleButton
{
id: resetToDefaultQualityButton
height: UM.Theme.getSize("action_button_icon").height
width: height
iconSource: UM.Theme.getIcon("ArrowReset")
anchors
{
right: parent.right
verticalCenter: parent.verticalCenter
}
color: UM.Theme.getColor("accent_1")
onClicked:
{
Cura.MachineManager.resetToUseDefaultQuality()
}
}
}

View File

@ -2,6 +2,7 @@
//Cura is released under the terms of the LGPLv3 or higher. //Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10 import QtQuick 2.10
import QtQuick.Layouts 1.1
import UM 1.6 as UM import UM 1.6 as UM
import Cura 1.6 as Cura import Cura 1.6 as Cura
@ -15,7 +16,7 @@ Item
property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1 property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1
property real padding: UM.Theme.getSize("default_margin").width property real padding: UM.Theme.getSize("default_margin").width
Column ColumnLayout
{ {
spacing: UM.Theme.getSize("default_margin").height spacing: UM.Theme.getSize("default_margin").height
@ -39,29 +40,37 @@ Item
RecommendedQualityProfileSelector RecommendedQualityProfileSelector
{ {
width: parent.width width: parent.width
visible: recommendedResolutionSelector.visible visible: recommendedResolutionSelector.visible
} }
RecommendedResolutionSelector RecommendedResolutionSelector
{ {
id: recommendedResolutionSelector id: recommendedResolutionSelector
Layout.fillWidth: true
width: parent.width width: parent.width
} }
UnsupportedProfileIndication UnsupportedProfileIndication
{ {
width: parent.width width: parent.width
visible: !recommendedResolutionSelector.visible visible: !recommendedResolutionSelector.visible
} }
ProfileWarningReset
{
width: parent.width
Layout.fillWidth: true
}
//Line between the sections. //Line between the sections.
Rectangle Rectangle
{ {
width: parent.width width: parent.width
height: UM.Theme.getSize("default_lining").height height: UM.Theme.getSize("default_lining").height
Layout.topMargin: UM.Theme.getSize("narrow_margin").height
Layout.bottomMargin: UM.Theme.getSize("narrow_margin").height
Layout.fillWidth: true
color: UM.Theme.getColor("lining") color: UM.Theme.getColor("lining")
} }
@ -76,6 +85,9 @@ Item
width: parent.width width: parent.width
// TODO Create a reusable component with these properties to not define them separately for each component // TODO Create a reusable component with these properties to not define them separately for each component
labelColumnWidth: parent.firstColumnWidth labelColumnWidth: parent.firstColumnWidth
Layout.fillWidth: true
Layout.leftMargin: UM.Theme.getSize("default_margin").width
Layout.rightMargin: UM.Theme.getSize("default_margin").width
} }
RecommendedSupportSelector RecommendedSupportSelector
@ -83,6 +95,7 @@ Item
width: parent.width width: parent.width
// TODO Create a reusable component with these properties to not define them separately for each component // TODO Create a reusable component with these properties to not define them separately for each component
labelColumnWidth: parent.firstColumnWidth labelColumnWidth: parent.firstColumnWidth
Layout.leftMargin: UM.Theme.getSize("default_margin").width
} }
RecommendedAdhesionSelector RecommendedAdhesionSelector
@ -90,6 +103,7 @@ Item
width: parent.width width: parent.width
// TODO Create a reusable component with these properties to not define them separately for each component // TODO Create a reusable component with these properties to not define them separately for each component
labelColumnWidth: parent.firstColumnWidth labelColumnWidth: parent.firstColumnWidth
Layout.leftMargin: UM.Theme.getSize("default_margin").width
} }
} }

View File

@ -645,6 +645,8 @@
"preferences_page_list_item": [8.0, 2.0], "preferences_page_list_item": [8.0, 2.0],
"recommended_button_icon": [1.7, 1.7] "recommended_button_icon": [1.7, 1.7],
"reset_profile_icon": [1, 1]
} }
} }