MonitorQueue.qml 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. // Copyright (c) 2018 Ultimaker B.V.
  2. // Cura is released under the terms of the LGPLv3 or higher.
  3. import QtQuick 2.2
  4. import QtQuick.Controls 1.4
  5. import QtQuick.Controls.Styles 1.4
  6. import UM 1.3 as UM
  7. import Cura 1.0 as Cura
  8. /**
  9. * This component contains the print job queue, extracted from the primary
  10. * MonitorStage.qml file not for reusability but simply to keep it lean and more
  11. * readable.
  12. */
  13. Item
  14. {
  15. Label
  16. {
  17. id: queuedLabel
  18. anchors
  19. {
  20. left: queuedPrintJobs.left
  21. top: parent.top
  22. }
  23. color: UM.Theme.getColor("text")
  24. font: UM.Theme.getFont("large_nonbold")
  25. text: catalog.i18nc("@label", "Queued")
  26. }
  27. Item
  28. {
  29. id: manageQueueLabel
  30. anchors
  31. {
  32. right: queuedPrintJobs.right
  33. verticalCenter: queuedLabel.verticalCenter
  34. }
  35. height: 18 * screenScaleFactor // TODO: Theme!
  36. width: childrenRect.width
  37. UM.RecolorImage
  38. {
  39. id: externalLinkIcon
  40. anchors.verticalCenter: manageQueueLabel.verticalCenter
  41. color: UM.Theme.getColor("primary")
  42. source: "../svg/icons/external_link.svg"
  43. width: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!)
  44. height: 16 * screenScaleFactor // TODO: Theme! (Y U NO USE 18 LIKE ALL OTHER ICONS?!)
  45. }
  46. Label
  47. {
  48. id: manageQueueText
  49. anchors
  50. {
  51. left: externalLinkIcon.right
  52. leftMargin: 6 * screenScaleFactor // TODO: Theme!
  53. verticalCenter: externalLinkIcon.verticalCenter
  54. }
  55. color: UM.Theme.getColor("primary")
  56. font: UM.Theme.getFont("default") // 12pt, regular
  57. linkColor: UM.Theme.getColor("primary")
  58. text: catalog.i18nc("@label link to connect manager", "Manage queue in Cura Connect")
  59. }
  60. }
  61. MouseArea
  62. {
  63. anchors.fill: manageQueueLabel
  64. hoverEnabled: true
  65. onClicked: Cura.MachineManager.printerOutputDevices[0].openPrintJobControlPanel()
  66. onEntered:
  67. {
  68. manageQueueText.font.underline = true
  69. }
  70. onExited:
  71. {
  72. manageQueueText.font.underline = false
  73. }
  74. }
  75. Row
  76. {
  77. id: printJobQueueHeadings
  78. anchors
  79. {
  80. left: queuedPrintJobs.left
  81. leftMargin: 6 * screenScaleFactor // TODO: Theme!
  82. top: queuedLabel.bottom
  83. topMargin: 24 * screenScaleFactor // TODO: Theme!
  84. }
  85. spacing: 18 * screenScaleFactor // TODO: Theme!
  86. Label
  87. {
  88. text: catalog.i18nc("@label", "Print jobs")
  89. color: "#666666"
  90. elide: Text.ElideRight
  91. font: UM.Theme.getFont("medium") // 14pt, regular
  92. anchors.verticalCenter: parent.verticalCenter
  93. width: 284 * screenScaleFactor // TODO: Theme! (Should match column size)
  94. // FIXED-LINE-HEIGHT:
  95. height: 18 * screenScaleFactor // TODO: Theme!
  96. verticalAlignment: Text.AlignVCenter
  97. }
  98. Label
  99. {
  100. text: catalog.i18nc("@label", "Total print time")
  101. color: "#666666"
  102. elide: Text.ElideRight
  103. font: UM.Theme.getFont("medium") // 14pt, regular
  104. anchors.verticalCenter: parent.verticalCenter
  105. width: 216 * screenScaleFactor // TODO: Theme! (Should match column size)
  106. // FIXED-LINE-HEIGHT:
  107. height: 18 * screenScaleFactor // TODO: Theme!
  108. verticalAlignment: Text.AlignVCenter
  109. }
  110. Label
  111. {
  112. text: catalog.i18nc("@label", "Waiting for")
  113. color: "#666666"
  114. elide: Text.ElideRight
  115. font: UM.Theme.getFont("medium") // 14pt, regular
  116. anchors.verticalCenter: parent.verticalCenter
  117. width: 216 * screenScaleFactor // TODO: Theme! (Should match column size)
  118. // FIXED-LINE-HEIGHT:
  119. height: 18 * screenScaleFactor // TODO: Theme!
  120. verticalAlignment: Text.AlignVCenter
  121. }
  122. }
  123. ScrollView
  124. {
  125. id: queuedPrintJobs
  126. anchors
  127. {
  128. bottom: parent.bottom
  129. horizontalCenter: parent.horizontalCenter
  130. top: printJobQueueHeadings.bottom
  131. topMargin: 12 * screenScaleFactor // TODO: Theme!
  132. }
  133. style: UM.Theme.styles.scrollview
  134. visible: OutputDevice.receivedPrintJobs
  135. width: parent.width
  136. ListView
  137. {
  138. id: printJobList
  139. anchors.fill: parent
  140. delegate: MonitorPrintJobCard
  141. {
  142. anchors
  143. {
  144. left: parent.left
  145. right: parent.right
  146. }
  147. printJob: modelData
  148. }
  149. model: OutputDevice.queuedPrintJobs
  150. spacing: 6 // TODO: Theme!
  151. }
  152. }
  153. }