FileMenu.qml 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  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. }
  29. RecentFilesMenu { }
  30. Cura.MenuItem
  31. {
  32. id: saveWorkspaceMenu
  33. shortcut: StandardKey.Save
  34. text: catalog.i18nc("@title:menu menubar:file", "&Save Project...")
  35. visible: saveProjectMenu.model.count == 1
  36. enabled: UM.WorkspaceFileHandler.enabled && saveProjectMenu.model.count == 1
  37. onTriggered:
  38. {
  39. var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" };
  40. if(UM.Preferences.getValue("cura/dialog_on_project_save"))
  41. {
  42. saveWorkspaceDialog.args = args
  43. saveWorkspaceDialog.open()
  44. }
  45. else
  46. {
  47. UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args)
  48. }
  49. }
  50. }
  51. UM.ProjectOutputDevicesModel { id: projectOutputDevicesModel }
  52. SaveProjectMenu
  53. {
  54. id: saveProjectMenu
  55. model: projectOutputDevicesModel
  56. shouldBeVisible: model.count > 1
  57. enabled: UM.WorkspaceFileHandler.enabled
  58. }
  59. Cura.MenuSeparator { }
  60. Cura.MenuItem
  61. {
  62. id: saveAsMenu
  63. text: catalog.i18nc("@title:menu menubar:file", "&Export...")
  64. onTriggered:
  65. {
  66. var localDeviceId = "local_file"
  67. UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  68. }
  69. }
  70. Cura.MenuItem
  71. {
  72. id: exportSelectionMenu
  73. text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
  74. enabled: UM.Selection.hasSelection
  75. icon.name: "document-save-as"
  76. onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  77. }
  78. Cura.MenuSeparator { }
  79. Cura.MenuItem
  80. {
  81. id: reloadAllMenu
  82. action: Cura.Actions.reloadAll
  83. }
  84. Cura.MenuSeparator { }
  85. Cura.MenuItem { action: Cura.Actions.quit }
  86. }