ProfileMenu.qml 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. // Copyright (c) 2016 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. Instantiator
  11. {
  12. model: Cura.ProfilesModel
  13. MenuItem
  14. {
  15. text: (model.layer_height != "") ? model.name + " - " + model.layer_height : model.name
  16. checkable: true
  17. checked: Cura.MachineManager.activeQualityId == model.id
  18. exclusiveGroup: group
  19. onTriggered: Cura.MachineManager.setActiveQuality(model.id)
  20. visible: model.available
  21. }
  22. onObjectAdded: menu.insertItem(index, object);
  23. onObjectRemoved: menu.removeItem(object);
  24. }
  25. MenuSeparator
  26. {
  27. id: customSeparator
  28. visible: Cura.UserProfilesModel.rowCount > 0
  29. }
  30. Instantiator
  31. {
  32. id: customProfileInstantiator
  33. model: Cura.UserProfilesModel
  34. {
  35. onModelReset: customSeparator.visible = rowCount() > 0
  36. }
  37. MenuItem
  38. {
  39. text: model.name
  40. checkable: true
  41. checked: Cura.MachineManager.activeQualityChangesId == model.id
  42. exclusiveGroup: group
  43. onTriggered: Cura.MachineManager.setActiveQuality(model.id)
  44. }
  45. onObjectAdded:
  46. {
  47. customSeparator.visible = model.rowCount() > 0;
  48. menu.insertItem(index, object);
  49. }
  50. onObjectRemoved:
  51. {
  52. customSeparator.visible = model.rowCount() > 0;
  53. menu.removeItem(object);
  54. }
  55. }
  56. ExclusiveGroup { id: group; }
  57. MenuSeparator { id: profileMenuSeparator }
  58. MenuItem { action: Cura.Actions.addProfile }
  59. MenuItem { action: Cura.Actions.updateProfile }
  60. MenuItem { action: Cura.Actions.resetProfile }
  61. MenuSeparator { }
  62. MenuItem { action: Cura.Actions.manageProfiles }
  63. function getFilter(initial_conditions)
  64. {
  65. var result = initial_conditions;
  66. if(Cura.MachineManager.filterQualityByMachine)
  67. {
  68. result.definition = Cura.MachineManager.activeQualityDefinitionId;
  69. if(Cura.MachineManager.hasMaterials)
  70. {
  71. result.material = Cura.MachineManager.activeQualityMaterialId;
  72. }
  73. }
  74. else
  75. {
  76. result.definition = "fdmprinter"
  77. }
  78. return result
  79. }
  80. }