UM3InfoComponents.qml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import UM 1.2 as UM
  2. import Cura 1.0 as Cura
  3. import QtQuick 2.2
  4. import QtQuick.Controls 1.1
  5. import QtQuick.Layouts 1.1
  6. import QtQuick.Window 2.1
  7. Item
  8. {
  9. id: base
  10. property bool isUM3: Cura.MachineManager.activeDefinitionId == "ultimaker3"
  11. property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
  12. property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands
  13. property bool authenticationRequested: printerConnected && Cura.MachineManager.printerOutputDevices[0].authenticationState == 2 // AuthState.AuthenticationRequested
  14. Row
  15. {
  16. objectName: "networkPrinterConnectButton"
  17. visible: isUM3
  18. spacing: UM.Theme.getSize("default_margin").width
  19. Button
  20. {
  21. height: UM.Theme.getSize("save_button_save_to_button").height
  22. tooltip: catalog.i18nc("@info:tooltip", "Send access request to the printer")
  23. text: catalog.i18nc("@action:button", "Request Access")
  24. style: UM.Theme.styles.sidebar_action_button
  25. onClicked: Cura.MachineManager.printerOutputDevices[0].requestAuthentication()
  26. visible: printerConnected && !base.printerAcceptsCommands && !base.authenticationRequested
  27. }
  28. Button
  29. {
  30. height: UM.Theme.getSize("save_button_save_to_button").height
  31. tooltip: catalog.i18nc("@info:tooltip", "Connect to a printer")
  32. text: catalog.i18nc("@action:button", "Connect")
  33. style: UM.Theme.styles.sidebar_action_button
  34. onClicked: connectActionDialog.show()
  35. enabled: true
  36. visible: !base.printerConnected
  37. }
  38. }
  39. UM.Dialog
  40. {
  41. id: connectActionDialog
  42. Loader
  43. {
  44. anchors.fill: parent
  45. source: "DiscoverUM3Action.qml"
  46. }
  47. rightButtons: Button
  48. {
  49. text: catalog.i18nc("@action:button", "Close")
  50. iconName: "dialog-close"
  51. onClicked: connectActionDialog.reject()
  52. }
  53. }
  54. Column
  55. {
  56. objectName: "networkPrinterConnectionInfo"
  57. visible: isUM3
  58. spacing: UM.Theme.getSize("default_margin").width
  59. anchors.fill: parent
  60. Button
  61. {
  62. tooltip: catalog.i18nc("@info:tooltip", "Send access request to the printer")
  63. text: catalog.i18nc("@action:button", "Request Access")
  64. onClicked: Cura.MachineManager.printerOutputDevices[0].requestAuthentication()
  65. visible: !base.printerAcceptsCommands && !base.authenticationRequested
  66. }
  67. Row
  68. {
  69. visible: base.printerConnected
  70. spacing: UM.Theme.getSize("default_margin").width
  71. anchors.left: parent.left
  72. anchors.right: parent.right
  73. height: childrenRect.height
  74. Column
  75. {
  76. Repeater
  77. {
  78. model: Cura.ExtrudersModel { simpleNames: true }
  79. Label { text: model.name }
  80. }
  81. }
  82. Column
  83. {
  84. Repeater
  85. {
  86. id: nozzleColumn
  87. model: printerConnected ? Cura.MachineManager.printerOutputDevices[0].hotendIds : null
  88. Label { text: nozzleColumn.model[index] }
  89. }
  90. }
  91. Column
  92. {
  93. Repeater
  94. {
  95. id: materialColumn
  96. model: printerConnected ? Cura.MachineManager.printerOutputDevices[0].materialNames : null
  97. Label { text: materialColumn.model[index] }
  98. }
  99. }
  100. }
  101. Button
  102. {
  103. tooltip: catalog.i18nc("@info:tooltip", "Load the configuration of the printer into Cura")
  104. text: catalog.i18nc("@action:button", "Activate Configuration")
  105. visible: base.printerConnected
  106. onClicked: manager.loadConfigurationFromPrinter()
  107. }
  108. }
  109. UM.I18nCatalog{id: catalog; name:"cura"}
  110. }