PrintMonitor.qml 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. // Copyright (c) 2016 Ultimaker B.V.
  2. // Cura is released under the terms of the AGPLv3 or higher.
  3. import QtQuick 2.2
  4. import QtQuick.Controls 1.1
  5. import QtQuick.Controls.Styles 1.1
  6. import QtQuick.Layouts 1.1
  7. import UM 1.2 as UM
  8. import Cura 1.0 as Cura
  9. Column
  10. {
  11. id: printMonitor
  12. property var connectedPrinter: printerConnected ? Cura.MachineManager.printerOutputDevices[0] : null
  13. Label
  14. {
  15. text: printerConnected ? connectedPrinter.connectionText : catalog.i18nc("@label", "The printer is not connected.")
  16. color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
  17. font: UM.Theme.getFont("default")
  18. wrapMode: Text.WordWrap
  19. width: base.width
  20. }
  21. Loader
  22. {
  23. sourceComponent: monitorSection
  24. property string label: catalog.i18nc("@label", "Temperatures")
  25. }
  26. Repeater
  27. {
  28. model: machineExtruderCount.properties.value
  29. delegate: Loader
  30. {
  31. sourceComponent: monitorItem
  32. property string label: machineExtruderCount.properties.value > 1 ? catalog.i18nc("@label", "Hotend Temperature %1").arg(index + 1) : catalog.i18nc("@label", "Hotend Temperature")
  33. property string value: printerConnected ? Math.round(connectedPrinter.hotendTemperatures[index]) + "°C" : ""
  34. }
  35. }
  36. Repeater
  37. {
  38. model: machineHeatedBed.properties.value == "True" ? 1 : 0
  39. delegate: Loader
  40. {
  41. sourceComponent: monitorItem
  42. property string label: catalog.i18nc("@label", "Bed Temperature")
  43. property string value: printerConnected ? Math.round(connectedPrinter.bedTemperature) + "°C" : ""
  44. }
  45. }
  46. Loader
  47. {
  48. sourceComponent: monitorSection
  49. property string label: catalog.i18nc("@label", "Active print")
  50. }
  51. Loader
  52. {
  53. sourceComponent: monitorItem
  54. property string label: catalog.i18nc("@label", "Job Name")
  55. property string value: printerConnected ? connectedPrinter.jobName : ""
  56. }
  57. Loader
  58. {
  59. sourceComponent: monitorItem
  60. property string label: catalog.i18nc("@label", "Printing Time")
  61. property string value: printerConnected ? getPrettyTime(connectedPrinter.timeTotal) : ""
  62. }
  63. Loader
  64. {
  65. sourceComponent: monitorItem
  66. property string label: catalog.i18nc("@label", "Estimated time left")
  67. property string value: printerConnected ? getPrettyTime(connectedPrinter.timeTotal - connectedPrinter.timeElapsed) : ""
  68. }
  69. Component
  70. {
  71. id: monitorItem
  72. Row
  73. {
  74. height: UM.Theme.getSize("setting_control").height
  75. Label
  76. {
  77. text: label
  78. color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
  79. font: UM.Theme.getFont("default")
  80. width: base.width * 0.4
  81. elide: Text.ElideRight
  82. anchors.verticalCenter: parent.verticalCenter
  83. }
  84. Label
  85. {
  86. text: value
  87. color: printerConnected && printerAcceptsCommands ? UM.Theme.getColor("setting_control_text") : UM.Theme.getColor("setting_control_disabled_text")
  88. font: UM.Theme.getFont("default")
  89. anchors.verticalCenter: parent.verticalCenter
  90. }
  91. }
  92. }
  93. Component
  94. {
  95. id: monitorSection
  96. Rectangle
  97. {
  98. color: UM.Theme.getColor("setting_category")
  99. width: base.width - 2 * UM.Theme.getSize("default_margin").width
  100. height: UM.Theme.getSize("section").height
  101. Label
  102. {
  103. anchors.verticalCenter: parent.verticalCenter
  104. anchors.left: parent.left
  105. anchors.leftMargin: UM.Theme.getSize("default_margin").width
  106. text: label
  107. font: UM.Theme.getFont("setting_category")
  108. color: UM.Theme.getColor("setting_category_text")
  109. }
  110. }
  111. }
  112. }