mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-30 07:44:22 +08:00

We've not been clipping this for so long, but the text really does overlap with the label and the buttons if we don't (and the text is sufficiently large). Contributes to issue CURA-8686.
323 lines
12 KiB
QML
323 lines
12 KiB
QML
// Copyright (c) 2022 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.10
|
|
import QtQuick.Controls 2.9
|
|
import QtQuick.Layouts 1.3
|
|
import QtQuick.Window 2.2
|
|
|
|
import UM 1.5 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
UM.Dialog
|
|
{
|
|
id: base
|
|
title: catalog.i18nc("@title:window", "Save Project")
|
|
|
|
minimumWidth: 500 * screenScaleFactor
|
|
minimumHeight: 400 * screenScaleFactor
|
|
width: minimumWidth
|
|
height: minimumHeight
|
|
|
|
property int spacerHeight: 10 * screenScaleFactor
|
|
|
|
property bool dontShowAgain: true
|
|
|
|
signal yes();
|
|
|
|
function accept() { // pressing enter will call this function
|
|
close();
|
|
yes();
|
|
}
|
|
|
|
onClosing:
|
|
{
|
|
UM.Preferences.setValue("cura/dialog_on_project_save", !dontShowAgainCheckbox.checked)
|
|
}
|
|
|
|
onVisibleChanged:
|
|
{
|
|
if(visible)
|
|
{
|
|
dontShowAgain = !UM.Preferences.getValue("cura/dialog_on_project_save")
|
|
}
|
|
}
|
|
|
|
Item
|
|
{
|
|
anchors.fill: parent
|
|
|
|
UM.SettingDefinitionsModel
|
|
{
|
|
id: definitionsModel
|
|
containerId: base.visible ? Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: "" : ""
|
|
showAll: true
|
|
exclude: ["command_line_settings"]
|
|
showAncestors: true
|
|
expanded: ["*"]
|
|
visibilityHandler: UM.SettingPreferenceVisibilityHandler { }
|
|
}
|
|
|
|
SystemPalette
|
|
{
|
|
id: palette
|
|
}
|
|
Label
|
|
{
|
|
id: mainHeading
|
|
width: parent.width
|
|
text: catalog.i18nc("@action:title", "Summary - Cura Project")
|
|
font.pointSize: 18
|
|
anchors.top: parent.top
|
|
}
|
|
ScrollView
|
|
{
|
|
id: scroll
|
|
width: parent.width
|
|
anchors
|
|
{
|
|
top: mainHeading.bottom
|
|
topMargin: UM.Theme.getSize("default_margin").height
|
|
bottom: controls.top
|
|
bottomMargin: UM.Theme.getSize("default_margin").height
|
|
}
|
|
|
|
ScrollBar.vertical: UM.ScrollBar
|
|
{
|
|
parent: scroll
|
|
anchors
|
|
{
|
|
top: parent.top
|
|
right: parent.right
|
|
bottom: parent.bottom
|
|
}
|
|
}
|
|
clip: true
|
|
|
|
ColumnLayout
|
|
{
|
|
spacing: UM.Theme.getSize("default_margin").height
|
|
Column
|
|
{
|
|
Label
|
|
{
|
|
id: settingsHeading
|
|
text: catalog.i18nc("@action:label", "Printer settings")
|
|
font.bold: true
|
|
}
|
|
Row
|
|
{
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
Label
|
|
{
|
|
text: catalog.i18nc("@action:label", "Type")
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
Label
|
|
{
|
|
text: (Cura.MachineManager.activeMachine == null) ? "" : Cura.MachineManager.activeMachine.definition.name
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
}
|
|
Row
|
|
{
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
Label
|
|
{
|
|
text: Cura.MachineManager.activeMachineNetworkGroupName != "" ? catalog.i18nc("@action:label", "Printer Group") : catalog.i18nc("@action:label", "Name")
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
Label
|
|
{
|
|
text:
|
|
{
|
|
if(Cura.MachineManager.activeMachineNetworkGroupName != "")
|
|
{
|
|
return Cura.MachineManager.activeMachineNetworkGroupName
|
|
}
|
|
if(Cura.MachineManager.activeMachine)
|
|
{
|
|
return Cura.MachineManager.activeMachine.name
|
|
}
|
|
return ""
|
|
}
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
}
|
|
}
|
|
Repeater
|
|
{
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
model: Cura.MachineManager.activeMachine ? Cura.MachineManager.activeMachine.extruderList : null
|
|
delegate: Column
|
|
{
|
|
height: childrenRect.height
|
|
width: parent.width
|
|
property string variantName:
|
|
{
|
|
var extruder = modelData
|
|
var variant_name = extruder.variant.name
|
|
return (variant_name !== undefined) ? variant_name : ""
|
|
}
|
|
property string materialName:
|
|
{
|
|
var extruder = modelData
|
|
var material_name = extruder.material.name
|
|
return (material_name !== undefined) ? material_name : ""
|
|
}
|
|
Label
|
|
{
|
|
text: {
|
|
var extruder = Number(modelData.position)
|
|
var extruder_id = ""
|
|
if(!isNaN(extruder))
|
|
{
|
|
extruder_id = extruder + 1 // The extruder counter start from One and not Zero
|
|
}
|
|
else
|
|
{
|
|
extruder_id = modelData.position
|
|
}
|
|
|
|
return catalog.i18nc("@action:label", "Extruder %1").arg(extruder_id)
|
|
}
|
|
font.bold: true
|
|
enabled: modelData.isEnabled
|
|
}
|
|
Row
|
|
{
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
|
|
Label
|
|
{
|
|
text:
|
|
{
|
|
if(variantName !== "" && materialName !== "")
|
|
{
|
|
return catalog.i18nc("@action:label", "%1 & material").arg(Cura.MachineManager.activeDefinitionVariantsName)
|
|
}
|
|
return catalog.i18nc("@action:label", "Material")
|
|
}
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
enabled: modelData.isEnabled
|
|
}
|
|
Label
|
|
{
|
|
text:
|
|
{
|
|
if(variantName !== "" && materialName !== "")
|
|
{
|
|
return variantName + ", " + materialName
|
|
}
|
|
return materialName
|
|
}
|
|
enabled: modelData.isEnabled
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Column
|
|
{
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
Label
|
|
{
|
|
text: catalog.i18nc("@action:label", "Profile settings")
|
|
font.bold: true
|
|
}
|
|
Row
|
|
{
|
|
width: parent.width
|
|
Label
|
|
{
|
|
text: catalog.i18nc("@action:label", "Not in profile")
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
Label
|
|
{
|
|
text: catalog.i18ncp("@action:label", "%1 override", "%1 overrides", Cura.MachineManager.numUserSettings).arg(Cura.MachineManager.numUserSettings)
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
visible: Cura.MachineManager.numUserSettings
|
|
}
|
|
Row
|
|
{
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
Label
|
|
{
|
|
text: catalog.i18nc("@action:label", "Name")
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
Label
|
|
{
|
|
text: Cura.MachineManager.activeQualityOrQualityChangesName
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
}
|
|
|
|
// Intent
|
|
Row
|
|
{
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
Label
|
|
{
|
|
text: catalog.i18nc("@action:label", "Intent")
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
Label
|
|
{
|
|
text: Cura.MachineManager.activeIntentCategory
|
|
width: Math.floor(scroll.width / 3) | 0
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
Item
|
|
{
|
|
id: controls
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
anchors.bottom: parent.bottom
|
|
CheckBox
|
|
{
|
|
id: dontShowAgainCheckbox
|
|
anchors.left: parent.left
|
|
text: catalog.i18nc("@action:label", "Don't show project summary on save again")
|
|
checked: dontShowAgain
|
|
}
|
|
Button
|
|
{
|
|
id: cancel_button
|
|
anchors
|
|
{
|
|
right: ok_button.left
|
|
rightMargin: UM.Theme.getSize("default_margin").width
|
|
}
|
|
text: catalog.i18nc("@action:button","Cancel");
|
|
enabled: true
|
|
onClicked: close()
|
|
}
|
|
Button
|
|
{
|
|
id: ok_button
|
|
anchors.right: parent.right
|
|
text: catalog.i18nc("@action:button","Save");
|
|
enabled: true
|
|
onClicked:
|
|
{
|
|
close()
|
|
yes()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|