FileMenu.qml 2.7 KB

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