Clean the recommended mode print setup

Contributes to CURA-5941
This commit is contained in:
Diego Prado Gesto 2018-11-29 08:54:04 +01:00
parent 990c653af4
commit 7639983925
2 changed files with 580 additions and 656 deletions

View File

@ -94,40 +94,10 @@ Item
anchors
{
top: header.bottom
leftMargin: UM.Theme.getSize("default_margin").width
rightMargin: UM.Theme.getSize("default_margin").width
}
sourceComponent: currentModeIndex == 0 ? recommendedPrintSetup : customPrintSetup
}
// Item
// {
// id: content
// width: parent.width
// height: 100
////// height: tabBar.height + sidebarContents.height
////
// anchors
// {
// top: header.bottom
// leftMargin: UM.Theme.getSize("default_margin").width
// rightMargin: UM.Theme.getSize("default_margin").width
// }
////
//// Rectangle
//// {
//// id: sidebarContents
//// anchors.top: tabBar.bottom
//// anchors.bottom: parent.bottom
//// anchors.left: parent.left
//// anchors.right: parent.right
//// height: UM.Theme.getSize("print_setup_widget").height
////
//// border.width: UM.Theme.getSize("default_lining").width * 2
//// border.color: UM.Theme.getColor("action_button_border")
//// }
// }
Rectangle
{
id: buttonsSeparator
@ -195,7 +165,6 @@ Item
Component.onCompleted:
{
print(height, "!!!!!!!!!!!!!!!!!!!!!!!")
var index = Math.round(UM.Preferences.getValue("cura/active_mode"))
if(index != null && !isNaN(index))

View File

@ -8,17 +8,22 @@ import QtQuick.Controls.Styles 1.4
import UM 1.2 as UM
import Cura 1.0 as Cura
Item
Column
{
id: base
signal showTooltip(Item item, point location, string text)
signal hideTooltip()
height: childrenRect.height
height: childrenRect.height + 2 * padding
padding: UM.Theme.getSize("thick_margin").width
spacing: UM.Theme.getSize("default_margin").height
property Action configureSettings
property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1
property real labelColumnWidth: Math.round(width / 3)
property real settingsColumnWidth: width - labelColumnWidth
UM.I18nCatalog
{
@ -33,10 +38,9 @@ Item
{
id: qualityRow
height: UM.Theme.getSize("thick_margin").height
anchors.topMargin: UM.Theme.getSize("thick_margin").height
anchors.left: parent.left
anchors.right: parent.right
height: childrenRect.height
Timer
{
@ -145,14 +149,14 @@ Item
function calculateSliderStepWidth (totalTicks)
{
qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((base.width * 0.55) / (totalTicks)) : 0
qualityModel.qualitySliderStepWidth = totalTicks != 0 ? Math.round((settingsColumnWidth) / (totalTicks)) : 0
}
function calculateSliderMargins (availableMin, availableMax, totalTicks)
{
if (availableMin == -1 || (availableMin == 0 && availableMax == 0))
{
qualityModel.qualitySliderMarginRight = Math.round(base.width * 0.55)
qualityModel.qualitySliderMarginRight = Math.round(settingsColumnWidth)
}
else if (availableMin == availableMax)
{
@ -180,6 +184,7 @@ Item
source: UM.Theme.getIcon("category_layer_height")
text: catalog.i18nc("@label", "Layer Height")
anchors.bottom: speedSlider.bottom
width: labelColumnWidth
}
// Show titles for the each quality slider ticks
@ -187,6 +192,7 @@ Item
{
anchors.left: speedSlider.left
anchors.top: speedSlider.bottom
Repeater
{
model: qualityModel
@ -194,7 +200,7 @@ Item
Label
{
anchors.verticalCenter: parent.verticalCenter
anchors.top: parent.bottom
anchors.top: parent.top
color: (Cura.MachineManager.activeMachine != null && Cura.QualityProfilesDropDownMenuModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
text:
{
@ -225,19 +231,19 @@ Item
if (qualityModel.totalTicks == 0)
{
// If there is only one tick, align it centrally
return Math.round(((base.width * 0.55) - width) / 2)
return Math.round(((settingsColumnWidth) - width) / 2)
}
else if (index == 0)
{
return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index
return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index
}
else if (index == qualityModel.totalTicks)
{
return Math.round(base.width * 0.55 / qualityModel.totalTicks) * index - width
return Math.round(settingsColumnWidth / qualityModel.totalTicks) * index - width
}
else
{
return Math.round((base.width * 0.55 / qualityModel.totalTicks) * index - (width / 2))
return Math.round((settingsColumnWidth / qualityModel.totalTicks) * index - (width / 2))
}
}
}
@ -248,103 +254,102 @@ Item
Rectangle
{
id: speedSlider
width: Math.round(base.width * 0.55)
height: UM.Theme.getSize("thick_margin").height
anchors.right: parent.right
anchors.top: parent.top
anchors.topMargin: UM.Theme.getSize("thick_margin").height
anchors
{
left: qualityRowTitle.right
right: parent.right
}
// This Item is used only for tooltip, for slider area which is unavailable
Item
{
function showTooltip (showTooltip)
{
if (showTooltip)
{
var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile")
base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content)
}
else
{
base.hideTooltip()
}
}
id: unavailableLineToolTip
height: 20 * screenScaleFactor // hovered area height
z: parent.z + 1 // should be higher, otherwise the area can be hovered
x: 0
anchors.verticalCenter: qualitySlider.verticalCenter
Rectangle
{
id: leftArea
width:
{
if (qualityModel.availableTotalTicks == 0)
{
return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks
}
return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10
}
height: parent.height
color: "transparent"
MouseArea
{
anchors.fill: parent
hoverEnabled: true
enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false
onEntered: unavailableLineToolTip.showTooltip(true)
onExited: unavailableLineToolTip.showTooltip(false)
}
}
Item
{
id: rightArea
width:
{
if(qualityModel.availableTotalTicks == 0)
return 0
return qualityModel.qualitySliderMarginRight - 10
}
height: parent.height
x:
{
if (qualityModel.availableTotalTicks == 0)
{
return 0
}
var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin
var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10
return totalGap
}
MouseArea
{
anchors.fill: parent
hoverEnabled: true
enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false
onEntered: unavailableLineToolTip.showTooltip(true)
onExited: unavailableLineToolTip.showTooltip(false)
}
}
}
// Item
// {
// function showTooltip (showTooltip)
// {
// if (showTooltip)
// {
// var content = catalog.i18nc("@tooltip", "This quality profile is not available for you current material and nozzle configuration. Please change these to enable this quality profile")
// base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content)
// }
// else
// {
// base.hideTooltip()
// }
// }
//
// id: unavailableLineToolTip
// height: 20 * screenScaleFactor // hovered area height
// z: parent.z + 1 // should be higher, otherwise the area can be hovered
// x: 0
// anchors.verticalCenter: qualitySlider.verticalCenter
//
// Rectangle
// {
// id: leftArea
// width:
// {
// if (qualityModel.availableTotalTicks == 0)
// {
// return qualityModel.qualitySliderStepWidth * qualityModel.totalTicks
// }
// return qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin - 10
// }
// height: parent.height
// color: "transparent"
//
// MouseArea
// {
// anchors.fill: parent
// hoverEnabled: true
// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false
// onEntered: unavailableLineToolTip.showTooltip(true)
// onExited: unavailableLineToolTip.showTooltip(false)
// }
// }
//
// Item
// {
// id: rightArea
// width:
// {
// if(qualityModel.availableTotalTicks == 0)
// return 0
//
// return qualityModel.qualitySliderMarginRight - 10
// }
// height: parent.height
// x:
// {
// if (qualityModel.availableTotalTicks == 0)
// {
// return 0
// }
//
// var leftUnavailableArea = qualityModel.qualitySliderStepWidth * qualityModel.qualitySliderAvailableMin
// var totalGap = qualityModel.qualitySliderStepWidth * (qualityModel.availableTotalTicks -1) + leftUnavailableArea + 10
//
// return totalGap
// }
//
// MouseArea
// {
// anchors.fill: parent
// hoverEnabled: true
// enabled: Cura.SimpleModeSettingsManager.isProfileUserCreated == false
// onEntered: unavailableLineToolTip.showTooltip(true)
// onExited: unavailableLineToolTip.showTooltip(false)
// }
// }
// }
// Draw Unavailable line
Rectangle
{
id: groovechildrect
width: Math.round(base.width * 0.55)
width: parent.width
height: 2 * screenScaleFactor
color: UM.Theme.getColor("quality_slider_unavailable")
anchors.verticalCenter: qualitySlider.verticalCenter
x: 0
}
// Draw ticks
Repeater
@ -355,19 +360,21 @@ Item
Rectangle
{
color: Cura.QualityProfilesDropDownMenuModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
implicitWidth: 5 * screenScaleFactor
implicitWidth: 4 * screenScaleFactor
implicitHeight: implicitWidth
anchors.verticalCenter: qualitySlider.verticalCenter
anchors.verticalCenter: parent.verticalCenter
x: Math.round(qualityModel.qualitySliderStepWidth * index)
radius: Math.round(implicitWidth / 2)
}
}
}
// Draw available slider
Slider
{
id: qualitySlider
height: UM.Theme.getSize("thick_margin").height
anchors.bottom: speedSlider.bottom
anchors.bottom: parent.bottom
enabled: qualityModel.totalTicks > 0 && !Cura.SimpleModeSettingsManager.isProfileCustomized
visible: qualityModel.availableTotalTicks > 0
updateValueWhileDragging : false
@ -394,20 +401,17 @@ Item
color: UM.Theme.getColor("quality_slider_available")
radius: Math.round(height / 2)
}
handle: Item
{
Rectangle
handle: Rectangle
{
id: qualityhandleButton
anchors.centerIn: parent
color: UM.Theme.getColor("quality_slider_available")
implicitWidth: 10 * screenScaleFactor
implicitWidth: 12 * screenScaleFactor
implicitHeight: implicitWidth
radius: Math.round(implicitWidth / 2)
visible: !Cura.SimpleModeSettingsManager.isProfileCustomized && !Cura.SimpleModeSettingsManager.isProfileUserCreated && qualityModel.existingQualityProfile
}
}
}
onValueChanged:
{
@ -433,7 +437,7 @@ Item
onEntered:
{
var content = catalog.i18nc("@tooltip","A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab")
var content = catalog.i18nc("@tooltip", "A custom profile is currently active. To enable the quality slider, choose a default quality profile in Custom tab")
base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, customisedSettings.height), content)
}
onExited: base.hideTooltip()
@ -474,27 +478,17 @@ Item
//
Item
{
id: infillCellLeft
anchors.top: qualityRow.bottom
anchors.topMargin: UM.Theme.getSize("thick_margin").height * 2
anchors.left: parent.left
width: Math.round(UM.Theme.getSize("print_setup_widget").width * .45) - UM.Theme.getSize("thick_margin").width
anchors.right: parent.right
height: childrenRect.height
Cura.IconWithText
{
id: infillLabel
id: infillRowTitle
source: UM.Theme.getIcon("category_infill")
text: catalog.i18nc("@label", "Infill") + " (%)"
anchors
{
top: parent.top
topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.7)
left: parent.left
}
}
anchors.bottom: parent.bottom
width: labelColumnWidth
}
Item
@ -502,13 +496,12 @@ Item
id: infillCellRight
height: infillSlider.height + UM.Theme.getSize("thick_margin").height + enableGradualInfillCheckBox.visible * (enableGradualInfillCheckBox.height + UM.Theme.getSize("thick_margin").height)
width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55)
anchors.left: infillCellLeft.right
anchors.top: infillCellLeft.top
anchors.topMargin: UM.Theme.getSize("thick_margin").height
anchors.left: infillRowTitle.right
anchors.right: parent.right
Label {
Label
{
id: selectedInfillRateText
anchors.left: infillSlider.left
@ -800,26 +793,24 @@ Item
}
}
}
}
//
// Enable support
//
Row
{
anchors.left: parent.left
anchors.right: parent.right
height: childrenRect.height
Cura.IconWithText
{
id: enableSupportLabel
visible: enableSupportCheckBox.visible
source: UM.Theme.getIcon("category_support")
text: catalog.i18nc("@label", "Support")
anchors
{
top: infillCellRight.bottom
topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 1.5)
left: parent.left
right: infillCellLeft.right
rightMargin: UM.Theme.getSize("thick_margin").width
verticalCenter: enableSupportCheckBox.verticalCenter
}
width: labelColumnWidth
}
CheckBox
@ -827,9 +818,6 @@ Item
id: enableSupportCheckBox
property alias _hovered: enableSupportMouseArea.containsMouse
anchors.top: enableSupportLabel.top
anchors.left: infillCellRight.left
style: UM.Theme.styles.checkbox
enabled: base.settingsEnabled
@ -868,11 +856,6 @@ Item
textRole: "text" // this solves that the combobox isn't populated in the first time Cura is started
anchors.top: enableSupportCheckBox.top
anchors.left: enableSupportCheckBox.right
anchors.leftMargin: Math.round(UM.Theme.getSize("thick_margin").width / 2)
width: Math.round(UM.Theme.getSize("print_setup_widget").width * .55) - Math.round(UM.Theme.getSize("thick_margin").width / 2) - enableSupportCheckBox.width
height: ((supportEnabled.properties.value == "True") && (machineExtruderCount.properties.value > 1)) ? UM.Theme.getSize("setting_control").height : 0
@ -927,6 +910,14 @@ Item
}
}
}
// Adhesion
Row
{
anchors.left: parent.left
anchors.right: parent.right
height: childrenRect.height
Cura.IconWithText
{
@ -934,14 +925,7 @@ Item
visible: adhesionCheckBox.visible
source: UM.Theme.getIcon("category_adhesion")
text: catalog.i18nc("@label", "Adhesion")
anchors
{
left: parent.left
right: infillCellLeft.right
rightMargin: UM.Theme.getSize("thick_margin").width
verticalCenter: adhesionCheckBox.verticalCenter
}
width: labelColumnWidth
}
CheckBox
@ -949,10 +933,6 @@ Item
id: adhesionCheckBox
property alias _hovered: adhesionMouseArea.containsMouse
anchors.top: enableSupportCheckBox.bottom
anchors.topMargin: UM.Theme.getSize("thick_margin").height
anchors.left: infillCellRight.left
//: Setting enable printing build-plate adhesion helper checkbox
style: UM.Theme.styles.checkbox
enabled: base.settingsEnabled
@ -988,7 +968,7 @@ Item
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()
}
}
}
@ -1005,31 +985,6 @@ Item
onModelChanged: populateExtruderModel()
}
Item
{
id: tipsCell
anchors.top: adhesionCheckBox.visible ? adhesionCheckBox.bottom : (enableSupportCheckBox.visible ? supportExtruderCombobox.bottom : infillCellRight.bottom)
anchors.topMargin: Math.round(UM.Theme.getSize("thick_margin").height * 2)
anchors.left: parent.left
width: parent.width
height: tipsText.contentHeight * tipsText.lineCount
Label
{
id: tipsText
anchors.left: parent.left
anchors.right: parent.right
anchors.rightMargin: UM.Theme.getSize("thick_margin").width
anchors.top: parent.top
wrapMode: Text.WordWrap
text: catalog.i18nc("@label", "Need help improving your prints?<br>Read the <a href='%1'>Ultimaker Troubleshooting Guides</a>").arg("https://ultimaker.com/en/troubleshooting")
font: UM.Theme.getFont("default");
color: UM.Theme.getColor("text");
linkColor: UM.Theme.getColor("text_link")
onLinkActivated: Qt.openUrlExternally(link)
}
}
UM.SettingPropertyProvider
{
id: infillExtruderNumber
@ -1096,8 +1051,8 @@ Item
function populateExtruderModel()
{
extruderModel.clear();
for(var extruderNumber = 0; extruderNumber < extruders.rowCount() ; extruderNumber++)
extruderModel.clear()
for (var extruderNumber = 0; extruderNumber < extruders.rowCount(); extruderNumber++)
{
extruderModel.append({
text: extruders.getItem(extruderNumber).name,