FileMenu.qml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  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.MenuSeparator { }
  61. Cura.MenuItem
  62. {
  63. id: saveAsMenu
  64. text: catalog.i18nc("@title:menu menubar:file", "&Export...")
  65. onTriggered:
  66. {
  67. var localDeviceId = "local_file"
  68. UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  69. }
  70. }
  71. Cura.MenuItem
  72. {
  73. id: exportSelectionMenu
  74. text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
  75. enabled: UM.Selection.hasSelection
  76. icon.name: "document-save-as"
  77. onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  78. }
  79. Cura.MenuSeparator { }
  80. Cura.MenuItem
  81. {
  82. id: reloadAllMenu
  83. action: Cura.Actions.reloadAll
  84. }
  85. Cura.MenuSeparator { }
  86. Cura.MenuItem { action: Cura.Actions.quit }
  87. }