123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- // 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: UM.Enums.ContentAlignment.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
- }
- }
- }
|