FileMenu.qml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. // Copyright (c) 2018 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.2
  5. import UM 1.6 as UM
  6. import Cura 1.0 as Cura
  7. Menu
  8. {
  9. id: base
  10. title: catalog.i18nc("@title:menu menubar:toplevel", "&File")
  11. property var fileProviderModel: CuraApplication.getFileProviderModel()
  12. MenuItem
  13. {
  14. id: newProjectMenu
  15. action: Cura.Actions.newProject
  16. }
  17. MenuItem
  18. {
  19. id: openMenu
  20. action: Cura.Actions.open
  21. visible: (base.fileProviderModel.count == 1)
  22. }
  23. OpenFilesMenu
  24. {
  25. id: openFilesMenu
  26. visible: (base.fileProviderModel.count > 1)
  27. }
  28. RecentFilesMenu { }
  29. MenuItem
  30. {
  31. id: saveWorkspaceMenu
  32. shortcut: visible ? StandardKey.Save : ""
  33. text: catalog.i18nc("@title:menu menubar:file", "&Save Project...")
  34. visible: saveProjectMenu.model.count == 1
  35. enabled: UM.WorkspaceFileHandler.enabled
  36. onTriggered:
  37. {
  38. var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" };
  39. if(UM.Preferences.getValue("cura/dialog_on_project_save"))
  40. {
  41. saveWorkspaceDialog.args = args
  42. saveWorkspaceDialog.open()
  43. }
  44. else
  45. {
  46. UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args)
  47. }
  48. }
  49. }
  50. UM.ProjectOutputDevicesModel { id: projectOutputDevicesModel }
  51. SaveProjectMenu
  52. {
  53. id: saveProjectMenu
  54. model: projectOutputDevicesModel
  55. visible: model.count > 1
  56. enabled: UM.WorkspaceFileHandler.enabled
  57. }
  58. MenuSeparator { }
  59. MenuItem
  60. {
  61. id: saveAsMenu
  62. text: catalog.i18nc("@title:menu menubar:file", "&Export...")
  63. onTriggered:
  64. {
  65. var localDeviceId = "local_file"
  66. UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  67. }
  68. }
  69. MenuItem
  70. {
  71. id: exportSelectionMenu
  72. text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
  73. enabled: UM.Selection.hasSelection
  74. iconName: "document-save-as"
  75. onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
  76. }
  77. MenuSeparator { }
  78. MenuItem
  79. {
  80. id: reloadAllMenu
  81. action: Cura.Actions.reloadAll
  82. }
  83. MenuSeparator { }
  84. MenuItem { action: Cura.Actions.quit }
  85. }