NozzleMenu.qml 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. // Copyright (c) 2017 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.1
  5. import UM 1.2 as UM
  6. import Cura 1.0 as Cura
  7. Menu
  8. {
  9. id: menu
  10. title: "Nozzle"
  11. property int extruderIndex: 0
  12. property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
  13. property bool isClusterPrinter:
  14. {
  15. if(Cura.MachineManager.printerOutputDevices.length == 0)
  16. {
  17. return false;
  18. }
  19. var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize;
  20. // This is not a cluster printer or the cluster it is just one printer
  21. if(clusterSize == undefined || clusterSize == 1)
  22. {
  23. return false;
  24. }
  25. return true;
  26. }
  27. // TODO: single instance??
  28. Cura.NozzleModel
  29. {
  30. id: nozzleModel
  31. }
  32. Instantiator
  33. {
  34. model: nozzleModel
  35. MenuItem
  36. {
  37. text: model.hotend_name
  38. checkable: true
  39. checked: Cura.MachineManager.activeVariantId == model.hotend_name
  40. exclusiveGroup: group
  41. onTriggered: {
  42. var position = Cura.ExtruderManager.activeExtruderIndex;
  43. Cura.MachineManager.setVariantGroup(position, model.container_node);
  44. }
  45. visible: true
  46. }
  47. onObjectAdded: menu.insertItem(index, object);
  48. onObjectRemoved: menu.removeItem(object);
  49. }
  50. /*
  51. Instantiator
  52. {
  53. id: nozzleInstantiator
  54. model: UM.InstanceContainersModel
  55. {
  56. filter:
  57. {
  58. var filter_dict =
  59. {
  60. "type": "variant",
  61. "definition": Cura.MachineManager.activeQualityDefinitionId //Only show variants of this machine
  62. }
  63. if (Cura.MachineManager.hasVariantBuildplates)
  64. {
  65. filter_dict["hardware_type"] = "nozzle"
  66. }
  67. return filter_dict
  68. }
  69. }
  70. MenuItem {
  71. text: model.name
  72. checkable: true
  73. checked: model.id == Cura.MachineManager.allActiveVariantIds[Cura.ExtruderManager.extruderIds[extruderIndex]]
  74. exclusiveGroup: group
  75. onTriggered:
  76. {
  77. var activeExtruderIndex = Cura.ExtruderManager.activeExtruderIndex;
  78. Cura.ExtruderManager.setActiveExtruderIndex(extruderIndex);
  79. Cura.MachineManager.setActiveVariant(model.id);
  80. Cura.ExtruderManager.setActiveExtruderIndex(activeExtruderIndex);
  81. }
  82. }
  83. onObjectAdded: menu.insertItem(index, object)
  84. onObjectRemoved: menu.removeItem(object)
  85. } */
  86. ExclusiveGroup { id: group }
  87. }