123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- // Copyright (c) 2022 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.7
- import QtQuick.Controls 2.4
- import UM 1.5 as UM
- import Cura 1.1 as Cura
- import "../Menus"
- import "../Dialogs"
- Item
- {
- id: menu
- width: parent.width
- height: applicationMenu.height
- MenuBar
- {
- id: applicationMenu
- width: parent.width
- height: UM.Theme.getSize("context_menu").height
- background: Rectangle {
- color: UM.Theme.getColor("background_1")
- }
- delegate: MenuBarItem
- {
- id: menuBarItem
- contentItem: UM.Label
- {
- text: menuBarItem.text.replace(new RegExp("&([A-Za-z])"), function (match, character)
- {
- return `<u>${character}</u>`
- })
- horizontalAlignment: Text.AlignLeft
- verticalAlignment: Text.AlignVCenter
- }
- leftPadding: UM.Theme.getSize("default_margin").width
- rightPadding: UM.Theme.getSize("default_margin").width
- background: Rectangle
- {
- color: menuBarItem.highlighted ? UM.Theme.getColor("background_2") : "transparent"
- }
- }
- FileMenu {}
- EditMenu {}
- ViewMenu {}
- SettingsMenu
- {
- //On MacOS, don't translate the "Settings" word.
- //Qt moves the "settings" entry to a different place, and if it got renamed can't find it again when it
- //attempts to delete the item upon closing the application, causing a crash.
- //In the new location, these items are translated automatically according to the system's language.
- //For more information, see:
- //- https://doc.qt.io/qt-5/macos-issues.html#menu-bar
- //- https://doc.qt.io/qt-5/qmenubar.html#qmenubar-as-a-global-menu-bar
- title: (Qt.platform.os == "osx") ? "&Settings" : catalog.i18nc("@title:menu menubar:toplevel", "&Settings")
- }
- ExtensionMenu { id: extensionMenu }
- PreferencesMenu {}
- HelpMenu {}
- }
- // ###############################################################################################
- // Definition of other components that are linked to the menus
- // ###############################################################################################
- WorkspaceSummaryDialog
- {
- id: saveWorkspaceDialog
- property var args
- onAccepted: UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args)
- }
- Cura.MessageDialog
- {
- id: newProjectDialog
- title: catalog.i18nc("@title:window", "New project")
- text: catalog.i18nc("@info:question", "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings.")
- standardButtons: Dialog.Yes | Dialog.No
- onAccepted:
- {
- CuraApplication.resetWorkspace()
- Cura.Actions.resetProfile.trigger()
- UM.Controller.setActiveStage("PrepareStage")
- }
- }
- // ###############################################################################################
- // Definition of all the connections
- // ###############################################################################################
- Connections
- {
- target: Cura.Actions.newProject
- function onTriggered()
- {
- if(Printer.platformActivity || Cura.MachineManager.hasUserSettings)
- {
- newProjectDialog.visible = true
- }
- }
- }
- // show the Toolbox
- Connections
- {
- target: Cura.Actions.browsePackages
- function onTriggered()
- {
- extensionMenu.extensionModel.callExtensionMethod("Marketplace", "show")
- }
- }
- // Show the Marketplace dialog at the materials tab
- Connections
- {
- target: Cura.Actions.marketplaceMaterials
- function onTriggered()
- {
- extensionMenu.extensionModel.callExtensionMethod("Marketplace", "show")
- extensionMenu.extensionModel.callExtensionMethod("Marketplace", "setVisibleTabToMaterials")
- }
- }
- }
|