|
@@ -11,136 +11,180 @@ import Cura 1.0 as Cura
|
|
|
|
|
|
import "PrinterOutput"
|
|
|
|
|
|
-Column
|
|
|
+
|
|
|
+Rectangle
|
|
|
{
|
|
|
- id: printMonitor
|
|
|
+ id: base
|
|
|
+ UM.I18nCatalog { id: catalog; name: "cura"}
|
|
|
+
|
|
|
+ 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
|
|
|
|
|
|
- Cura.ExtrudersModel
|
|
|
+ SidebarTooltip
|
|
|
{
|
|
|
- id: extrudersModel
|
|
|
- simpleNames: true
|
|
|
+ id: tooltip
|
|
|
}
|
|
|
|
|
|
- OutputDeviceHeader
|
|
|
+ Column
|
|
|
{
|
|
|
- outputDevice: connectedDevice
|
|
|
- }
|
|
|
+ id: printMonitor
|
|
|
|
|
|
- Rectangle
|
|
|
- {
|
|
|
- color: UM.Theme.getColor("wide_lining")
|
|
|
- width: parent.width
|
|
|
- height: childrenRect.height
|
|
|
+ anchors.fill: parent
|
|
|
+
|
|
|
+ Cura.ExtrudersModel
|
|
|
+ {
|
|
|
+ id: extrudersModel
|
|
|
+ simpleNames: true
|
|
|
+ }
|
|
|
+
|
|
|
+ OutputDeviceHeader
|
|
|
+ {
|
|
|
+ outputDevice: connectedDevice
|
|
|
+ }
|
|
|
|
|
|
- Flow
|
|
|
+ Rectangle
|
|
|
{
|
|
|
- id: extrudersGrid
|
|
|
- spacing: UM.Theme.getSize("thick_lining").width
|
|
|
+ color: UM.Theme.getColor("wide_lining")
|
|
|
width: parent.width
|
|
|
+ height: childrenRect.height
|
|
|
|
|
|
- Repeater
|
|
|
+ Flow
|
|
|
{
|
|
|
- id: extrudersRepeater
|
|
|
- model: activePrinter != null ? activePrinter.extruders : null
|
|
|
+ id: extrudersGrid
|
|
|
+ spacing: UM.Theme.getSize("thick_lining").width
|
|
|
+ width: parent.width
|
|
|
|
|
|
- ExtruderBox
|
|
|
+ Repeater
|
|
|
{
|
|
|
- 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
|
|
|
+ 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
|
|
|
- }
|
|
|
+ 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)
|
|
|
+ HeatedBedBox
|
|
|
+ {
|
|
|
+ visible:
|
|
|
{
|
|
|
- return true
|
|
|
+ if(activePrinter != null && activePrinter.bedTemperature != -1)
|
|
|
+ {
|
|
|
+ return true
|
|
|
+ }
|
|
|
+ return false
|
|
|
}
|
|
|
- return false
|
|
|
+ printerModel: activePrinter
|
|
|
}
|
|
|
- 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: bedTemperature
|
|
|
+ containerStack: Cura.MachineManager.activeMachine
|
|
|
+ key: "material_bed_temperature"
|
|
|
+ watchedProperties: ["value", "minimum_value", "maximum_value", "resolve"]
|
|
|
+ storeIndex: 0
|
|
|
|
|
|
- property var resolve: Cura.MachineManager.activeStack != Cura.MachineManager.activeMachine ? properties.resolve : "None"
|
|
|
- }
|
|
|
+ property var resolve: Cura.MachineManager.activeStack != Cura.MachineManager.activeMachine ? properties.resolve : "None"
|
|
|
+ }
|
|
|
|
|
|
- UM.SettingPropertyProvider
|
|
|
- {
|
|
|
- id: machineExtruderCount
|
|
|
- containerStack: Cura.MachineManager.activeMachine
|
|
|
- key: "machine_extruder_count"
|
|
|
- watchedProperties: ["value"]
|
|
|
- }
|
|
|
+ UM.SettingPropertyProvider
|
|
|
+ {
|
|
|
+ id: machineExtruderCount
|
|
|
+ containerStack: Cura.MachineManager.activeMachine
|
|
|
+ key: "machine_extruder_count"
|
|
|
+ watchedProperties: ["value"]
|
|
|
+ }
|
|
|
|
|
|
- ManualPrinterControl
|
|
|
- {
|
|
|
- printerModel: activePrinter
|
|
|
- visible: activePrinter != null ? activePrinter.canControlManually : false
|
|
|
- }
|
|
|
+ ManualPrinterControl
|
|
|
+ {
|
|
|
+ printerModel: activePrinter
|
|
|
+ visible: activePrinter != null ? activePrinter.canControlManually : false
|
|
|
+ }
|
|
|
|
|
|
|
|
|
- MonitorSection
|
|
|
- {
|
|
|
- label: catalog.i18nc("@label", "Active print")
|
|
|
- width: base.width
|
|
|
- visible: activePrinter != null
|
|
|
- }
|
|
|
+ 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", "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", "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:
|
|
|
+ MonitorItem
|
|
|
{
|
|
|
- if(activePrintJob == null)
|
|
|
+ label: catalog.i18nc("@label", "Estimated time left")
|
|
|
+ value: activePrintJob != null ? getPrettyTime(activePrintJob.timeTotal - activePrintJob.timeElapsed) : ""
|
|
|
+ visible:
|
|
|
{
|
|
|
- return false
|
|
|
- }
|
|
|
+ if(activePrintJob == null)
|
|
|
+ {
|
|
|
+ return false
|
|
|
+ }
|
|
|
|
|
|
- return (activePrintJob.state == "printing" ||
|
|
|
- activePrintJob.state == "resuming" ||
|
|
|
- activePrintJob.state == "pausing" ||
|
|
|
- activePrintJob.state == "paused")
|
|
|
+ return (activePrintJob.state == "printing" ||
|
|
|
+ activePrintJob.state == "resuming" ||
|
|
|
+ activePrintJob.state == "pausing" ||
|
|
|
+ activePrintJob.state == "paused")
|
|
|
+ }
|
|
|
+ width: base.width
|
|
|
}
|
|
|
- width: base.width
|
|
|
}
|
|
|
-}
|
|
|
+}
|