123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 |
- // Copyright (c) 2019 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.7
- import QtQuick.Layouts 1.1
- import QtQuick.Controls 2.15
- import UM 1.5 as UM
- import Cura 1.0 as Cura
- import "PrinterOutput"
- ScrollView
- {
- id: base
- width: parent.width
- height: parent.height
- contentHeight: printMonitor.height
- ScrollBar.vertical: UM.ScrollBar
- {
- id: scrollbar
- parent: base.parent
- anchors
- {
- right: parent.right
- top: parent.top
- bottom: parent.bottom
- }
- }
- clip: true
- function showTooltip(item, position, text)
- {
- tooltip.text = text;
- position = item.mapToItem(base, position.x - UM.Theme.getSize("default_arrow").width, position.y);
- tooltip.show(position);
- }
- function hideTooltip()
- {
- tooltip.hide();
- }
- function strPadLeft(string, pad, length) {
- return (new Array(length + 1).join(pad) + string).slice(-length);
- }
- function getPrettyTime(time)
- {
- var hours = Math.floor(time / 3600)
- time -= hours * 3600
- var minutes = Math.floor(time / 60);
- time -= minutes * 60
- var seconds = Math.floor(time);
- var finalTime = strPadLeft(hours, "0", 2) + ":" + strPadLeft(minutes, "0", 2) + ":" + strPadLeft(seconds, "0", 2);
- return finalTime;
- }
- property var connectedDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
- property var activePrinter: connectedDevice != null ? connectedDevice.activePrinter : null
- property var activePrintJob: activePrinter != null ? activePrinter.activePrintJob: null
- Column
- {
- id: printMonitor
- UM.I18nCatalog { id: catalog; name: "cura" }
- width: parent.width - scrollbar.width
- property var extrudersModel: CuraApplication.getExtrudersModel()
- OutputDeviceHeader
- {
- outputDevice: connectedDevice
- }
- Rectangle
- {
- color: UM.Theme.getColor("wide_lining")
- width: parent.width
- height: childrenRect.height
- Flow
- {
- id: extrudersGrid
- spacing: UM.Theme.getSize("thick_lining").width
- width: parent.width
- Repeater
- {
- id: extrudersRepeater
- model: activePrinter != null ? activePrinter.extruders : null
- ExtruderBox
- {
- color: UM.Theme.getColor("main_background")
- width: index == machineExtruderCount.properties.value - 1 && index % 2 == 0 ? extrudersGrid.width : Math.round(extrudersGrid.width / 2 - UM.Theme.getSize("thick_lining").width / 2)
- extruderModel: modelData
- }
- }
- }
- }
- Rectangle
- {
- color: UM.Theme.getColor("wide_lining")
- width: parent.width
- height: UM.Theme.getSize("thick_lining").width
- }
- HeatedBedBox
- {
- visible:
- {
- if(activePrinter != null && activePrinter.bedTemperature != -1)
- {
- return true
- }
- return false
- }
- printerModel: activePrinter
- }
- UM.SettingPropertyProvider
- {
- id: bedTemperature
- containerStack: Cura.MachineManager.activeMachine
- key: "material_bed_temperature"
- watchedProperties: ["value", "minimum_value", "maximum_value", "resolve"]
- storeIndex: 0
- }
- UM.SettingPropertyProvider
- {
- id: machineExtruderCount
- containerStack: Cura.MachineManager.activeMachine
- key: "machine_extruder_count"
- watchedProperties: ["value"]
- }
- ManualPrinterControl
- {
- printerModel: activePrinter
- visible: activePrinter != null ? activePrinter.canControlManually : false
- }
- MonitorSection
- {
- label: catalog.i18nc("@label", "Active print")
- width: base.width
- visible: activePrinter != null
- }
- MonitorItem
- {
- label: catalog.i18nc("@label", "Job Name")
- value: activePrintJob != null ? activePrintJob.name : ""
- width: base.width
- visible: activePrinter != null
- }
- MonitorItem
- {
- label: catalog.i18nc("@label", "Printing Time")
- value: activePrintJob != null ? getPrettyTime(activePrintJob.timeTotal) : ""
- width: base.width
- visible: activePrinter != null
- }
- MonitorItem
- {
- label: catalog.i18nc("@label", "Estimated time left")
- value: activePrintJob != null ? getPrettyTime(activePrintJob.timeTotal - activePrintJob.timeElapsed) : ""
- visible:
- {
- if(activePrintJob == null)
- {
- return false
- }
- return (activePrintJob.state == "printing" ||
- activePrintJob.state == "resuming" ||
- activePrintJob.state == "pausing" ||
- activePrintJob.state == "paused")
- }
- width: base.width
- }
- }
- PrintSetupTooltip
- {
- id: tooltip
- }
- }
|