FileMenu.qml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. // Copyright (c) 2022 Ultimaker B.V.
  2. // Cura is released under the terms of the LGPLv3 or higher.
  3. import QtQuick 2.2
  4. import QtQuick.Controls 2.1
  5. import UM 1.6 as UM
  6. import Cura 1.0 as Cura
  7. Cura.Menu
  8. {
  9. id: base
  10. title: catalog.i18nc("@title:menu menubar:toplevel", "&File")
  11. property var fileProviderModel: CuraApplication.getFileProviderModel()
  12. Cura.MenuItem
  13. {
  14. id: newProjectMenu
  15. action: Cura.Actions.newProject
  16. }
  17. Cura.MenuItem
  18. {
  19. id: openMenu
  20. action: Cura.Actions.open
  21. visible: base.fileProviderModel.count == 1
  22. enabled: base.fileProviderModel.count == 1
  23. }
  24. OpenFilesMenu
  25. {
  26. id: openFilesMenu
  27. shouldBeVisible: base.fileProviderModel.count > 1
  28. enabled: shouldBeVisible
  29. }
  30. RecentFilesMenu { }
  31. Cura.MenuItem
  32. {
  33. id: saveWorkspaceMenu
  34. shortcut: StandardKey.Save
  35. text: catalog.i18nc("@title:menu menubar:file", "&Save Project...")
  36. visible: saveProjectMenu.model.count == 1
  37. enabled: UM.WorkspaceFileHandler.enabled && saveProjectMenu.model.count == 1
  38. onTriggered:
  39. {
  40. var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" };
  41. if(UM.Preferences.getValue("cura/dialog_on_project_save"))
  42. {
  43. saveWorkspaceDialog.args = args
  44. saveWorkspaceDialog.open()
  45. }
  46. else
  47. {
  48. UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args)
  49. }
  50. }
  51. }
  52. UM.ProjectOutputDevicesModel { id: projectOutputDevicesModel }
  53. SaveProjectMenu
  54. {
  55. id: saveProjectMenu
  56. model: projectOutputDevicesModel
  57. shouldBeVisible: model.count > 1
  58. enabled: UM.WorkspaceFileHandler.enabled
  59. }
  60. Cura.MenuItem
  61. {
  62. id: saveUCPMenu
  63. text: catalog.i18nc("@title:menu menubar:file", "&Save Universal Cura Project...")
  64. enabled: UM.WorkspaceFileHandler.enabled
  65. onTriggered:
  66. {
  67. var args = { "filter_by_machine": false,
  68. "file_type": "workspace",
  69. "preferred_mimetypes": "application/x-ucp",
  70. "limit_mimetypes": "application/x-ucp"};
  71. UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args)
  72. }
  73. }
  74. Cura.MenuSeparator { }
  75. Cura.MenuItem
  76. {
  77. id: saveAsMenu
  78. text: catalog.i18nc("@title:menu menubar:file", "&Export...")
  79. onTriggered:
  80. {
  81. var localDeviceId = "local_file"
  82. UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  83. }
  84. }
  85. Cura.MenuItem
  86. {
  87. id: exportSelectionMenu
  88. text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
  89. enabled: UM.Selection.hasSelection
  90. icon.name: "document-save-as"
  91. onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  92. }
  93. Cura.MenuSeparator { }
  94. Cura.MenuItem
  95. {
  96. id: reloadAllMenu
  97. action: Cura.Actions.reloadAll
  98. }
  99. Cura.MenuSeparator { }
  100. Cura.MenuItem { action: Cura.Actions.quit }
  101. }