mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-06 22:47:29 -06:00

Removed the ContentAlignment enum in ToolTip in favour of using the Text.ContentAlignment enum. For some reason references to this enum fail everywhere when ToolTip is moved into Uranium. There is some evil time-wasting magic cast on this component! CURA-8943
145 lines
4.6 KiB
QML
145 lines
4.6 KiB
QML
// Copyright (c) 2019 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.7
|
|
import QtQuick.Controls 2.1
|
|
import QtQuick.Layouts 1.3
|
|
|
|
import UM 1.5 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
|
|
// This element contains all the elements the user needs to visualize the data
|
|
// that is gather after the slicing process, such as printint time, material usage, ...
|
|
// There are also two buttons: one to previsualize the output layers, and the other to
|
|
// select what to do with it (such as print over network, save to file, ...)
|
|
Column
|
|
{
|
|
id: widget
|
|
|
|
spacing: UM.Theme.getSize("thin_margin").height
|
|
property bool preSlicedData: PrintInformation.preSliced
|
|
property alias hasPreviewButton: previewStageShortcut.visible
|
|
|
|
UM.I18nCatalog
|
|
{
|
|
id: catalog
|
|
name: "cura"
|
|
}
|
|
|
|
Item
|
|
{
|
|
id: information
|
|
width: parent.width
|
|
height: childrenRect.height
|
|
|
|
PrintInformationWidget
|
|
{
|
|
id: printInformationPanel
|
|
visible: !preSlicedData
|
|
anchors.right: parent.right
|
|
}
|
|
|
|
Column
|
|
{
|
|
id: timeAndCostsInformation
|
|
spacing: UM.Theme.getSize("thin_margin").height
|
|
|
|
anchors
|
|
{
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
|
|
Cura.IconWithText
|
|
{
|
|
id: estimatedTime
|
|
width: parent.width
|
|
|
|
text: preSlicedData ? catalog.i18nc("@label", "No time estimation available") : PrintInformation.currentPrintTime.getDisplayString(UM.DurationFormat.Long)
|
|
source: UM.Theme.getIcon("Clock")
|
|
font: UM.Theme.getFont("medium_bold")
|
|
}
|
|
|
|
Cura.IconWithText
|
|
{
|
|
id: estimatedCosts
|
|
width: parent.width
|
|
|
|
property var printMaterialLengths: PrintInformation.materialLengths
|
|
property var printMaterialWeights: PrintInformation.materialWeights
|
|
property var printMaterialCosts: PrintInformation.materialCosts
|
|
|
|
text:
|
|
{
|
|
if (preSlicedData)
|
|
{
|
|
return catalog.i18nc("@label", "No cost estimation available")
|
|
}
|
|
var totalLengths = 0
|
|
var totalWeights = 0
|
|
var totalCosts = 0.0
|
|
if (printMaterialLengths)
|
|
{
|
|
for(var index = 0; index < printMaterialLengths.length; index++)
|
|
{
|
|
if(printMaterialLengths[index] > 0)
|
|
{
|
|
totalLengths += printMaterialLengths[index]
|
|
totalWeights += Math.round(printMaterialWeights[index])
|
|
var cost = printMaterialCosts[index] == undefined ? 0.0 : printMaterialCosts[index]
|
|
totalCosts += cost
|
|
}
|
|
}
|
|
}
|
|
if(totalCosts > 0)
|
|
{
|
|
var costString = "%1 %2".arg(UM.Preferences.getValue("cura/currency")).arg(totalCosts.toFixed(2))
|
|
return totalWeights + "g · " + totalLengths.toFixed(2) + "m · " + costString
|
|
}
|
|
return totalWeights + "g · " + totalLengths.toFixed(2) + "m"
|
|
}
|
|
source: UM.Theme.getIcon("Spool")
|
|
font: UM.Theme.getFont("default")
|
|
}
|
|
}
|
|
}
|
|
|
|
Item
|
|
{
|
|
id: buttonRow
|
|
anchors.right: parent.right
|
|
anchors.left: parent.left
|
|
height: UM.Theme.getSize("action_button").height
|
|
|
|
Cura.SecondaryButton
|
|
{
|
|
id: previewStageShortcut
|
|
|
|
anchors
|
|
{
|
|
left: parent.left
|
|
right: outputDevicesButton.left
|
|
rightMargin: UM.Theme.getSize("default_margin").width
|
|
}
|
|
|
|
height: UM.Theme.getSize("action_button").height
|
|
text: catalog.i18nc("@button", "Preview")
|
|
tooltip: text
|
|
fixedWidthMode: true
|
|
|
|
toolTipContentAlignment: Text.AlignLeft
|
|
|
|
onClicked: UM.Controller.setActiveStage("PreviewStage")
|
|
}
|
|
|
|
Cura.OutputDevicesActionButton
|
|
{
|
|
id: outputDevicesButton
|
|
|
|
anchors.right: parent.right
|
|
width: previewStageShortcut.visible ? UM.Theme.getSize("action_button").width : parent.width
|
|
height: UM.Theme.getSize("action_button").height
|
|
}
|
|
}
|
|
}
|