mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-08-12 21:48:58 +08:00
Merge pull request #11236 from Ultimaker/CURA-8683_replace_controls_windows_and_menus
Switch out the file, view and edit menu for controls 2
This commit is contained in:
commit
97bf50d56c
@ -4,69 +4,68 @@
|
|||||||
pragma Singleton
|
pragma Singleton
|
||||||
|
|
||||||
import QtQuick 2.10
|
import QtQuick 2.10
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.4
|
||||||
import QtQuick.Controls 2.3 as Controls2
|
|
||||||
import UM 1.1 as UM
|
import UM 1.1 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
property alias newProject: newProjectAction;
|
property alias newProject: newProjectAction
|
||||||
property alias open: openAction;
|
property alias open: openAction
|
||||||
property alias quit: quitAction;
|
property alias quit: quitAction
|
||||||
|
|
||||||
property alias undo: undoAction;
|
property alias undo: undoAction
|
||||||
property alias redo: redoAction;
|
property alias redo: redoAction
|
||||||
|
|
||||||
property alias view3DCamera: view3DCameraAction;
|
property alias view3DCamera: view3DCameraAction
|
||||||
property alias viewFrontCamera: viewFrontCameraAction;
|
property alias viewFrontCamera: viewFrontCameraAction
|
||||||
property alias viewTopCamera: viewTopCameraAction;
|
property alias viewTopCamera: viewTopCameraAction
|
||||||
property alias viewBottomCamera: viewBottomCameraAction;
|
property alias viewBottomCamera: viewBottomCameraAction
|
||||||
property alias viewLeftSideCamera: viewLeftSideCameraAction;
|
property alias viewLeftSideCamera: viewLeftSideCameraAction
|
||||||
property alias viewRightSideCamera: viewRightSideCameraAction;
|
property alias viewRightSideCamera: viewRightSideCameraAction
|
||||||
|
|
||||||
property alias deleteSelection: deleteSelectionAction;
|
property alias deleteSelection: deleteSelectionAction
|
||||||
property alias centerSelection: centerSelectionAction;
|
property alias centerSelection: centerSelectionAction
|
||||||
property alias multiplySelection: multiplySelectionAction;
|
property alias multiplySelection: multiplySelectionAction
|
||||||
|
|
||||||
property alias deleteObject: deleteObjectAction;
|
property alias deleteObject: deleteObjectAction
|
||||||
property alias centerObject: centerObjectAction;
|
property alias centerObject: centerObjectAction
|
||||||
property alias groupObjects: groupObjectsAction;
|
property alias groupObjects: groupObjectsAction
|
||||||
property alias unGroupObjects:unGroupObjectsAction;
|
property alias unGroupObjects:unGroupObjectsAction
|
||||||
property alias mergeObjects: mergeObjectsAction;
|
property alias mergeObjects: mergeObjectsAction
|
||||||
//property alias unMergeObjects: unMergeObjectsAction;
|
//property alias unMergeObjects: unMergeObjectsAction
|
||||||
|
|
||||||
property alias multiplyObject: multiplyObjectAction;
|
property alias multiplyObject: multiplyObjectAction
|
||||||
|
|
||||||
property alias selectAll: selectAllAction;
|
property alias selectAll: selectAllAction
|
||||||
property alias deleteAll: deleteAllAction;
|
property alias deleteAll: deleteAllAction
|
||||||
property alias reloadAll: reloadAllAction;
|
property alias reloadAll: reloadAllAction
|
||||||
property alias arrangeAllBuildPlates: arrangeAllBuildPlatesAction;
|
property alias arrangeAllBuildPlates: arrangeAllBuildPlatesAction
|
||||||
property alias arrangeAll: arrangeAllAction;
|
property alias arrangeAll: arrangeAllAction
|
||||||
property alias arrangeSelection: arrangeSelectionAction;
|
property alias arrangeSelection: arrangeSelectionAction
|
||||||
property alias resetAllTranslation: resetAllTranslationAction;
|
property alias resetAllTranslation: resetAllTranslationAction
|
||||||
property alias resetAll: resetAllAction;
|
property alias resetAll: resetAllAction
|
||||||
|
|
||||||
property alias addMachine: addMachineAction;
|
property alias addMachine: addMachineAction
|
||||||
property alias configureMachines: settingsAction;
|
property alias configureMachines: settingsAction
|
||||||
property alias addProfile: addProfileAction;
|
property alias addProfile: addProfileAction
|
||||||
property alias updateProfile: updateProfileAction;
|
property alias updateProfile: updateProfileAction
|
||||||
property alias resetProfile: resetProfileAction;
|
property alias resetProfile: resetProfileAction
|
||||||
property alias manageProfiles: manageProfilesAction;
|
property alias manageProfiles: manageProfilesAction
|
||||||
|
|
||||||
property alias manageMaterials: manageMaterialsAction;
|
property alias manageMaterials: manageMaterialsAction
|
||||||
property alias marketplaceMaterials: marketplaceMaterialsAction;
|
property alias marketplaceMaterials: marketplaceMaterialsAction
|
||||||
|
|
||||||
property alias preferences: preferencesAction;
|
property alias preferences: preferencesAction
|
||||||
|
|
||||||
property alias showProfileFolder: showProfileFolderAction;
|
property alias showProfileFolder: showProfileFolderAction
|
||||||
property alias documentation: documentationAction;
|
property alias documentation: documentationAction
|
||||||
property alias showTroubleshooting: showTroubleShootingAction
|
property alias showTroubleshooting: showTroubleShootingAction
|
||||||
property alias reportBug: reportBugAction;
|
property alias reportBug: reportBugAction
|
||||||
property alias whatsNew: whatsNewAction
|
property alias whatsNew: whatsNewAction
|
||||||
property alias about: aboutAction;
|
property alias about: aboutAction
|
||||||
|
|
||||||
property alias toggleFullScreen: toggleFullScreenAction;
|
property alias toggleFullScreen: toggleFullScreenAction
|
||||||
property alias exitFullScreen: exitFullScreenAction
|
property alias exitFullScreen: exitFullScreenAction
|
||||||
|
|
||||||
property alias configureSettingVisibility: configureSettingVisibilityAction
|
property alias configureSettingVisibility: configureSettingVisibilityAction
|
||||||
@ -80,7 +79,7 @@ Item
|
|||||||
{
|
{
|
||||||
id: showTroubleShootingAction
|
id: showTroubleShootingAction
|
||||||
onTriggered: Qt.openUrlExternally("https://ultimaker.com/en/troubleshooting?utm_source=cura&utm_medium=software&utm_campaign=dropdown-troubleshooting")
|
onTriggered: Qt.openUrlExternally("https://ultimaker.com/en/troubleshooting?utm_source=cura&utm_medium=software&utm_campaign=dropdown-troubleshooting")
|
||||||
text: catalog.i18nc("@action:inmenu", "Show Online Troubleshooting Guide");
|
text: catalog.i18nc("@action:inmenu", "Show Online Troubleshooting Guide")
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
@ -88,7 +87,7 @@ Item
|
|||||||
id: toggleFullScreenAction
|
id: toggleFullScreenAction
|
||||||
shortcut: StandardKey.FullScreen
|
shortcut: StandardKey.FullScreen
|
||||||
text: catalog.i18nc("@action:inmenu", "Toggle Full Screen")
|
text: catalog.i18nc("@action:inmenu", "Toggle Full Screen")
|
||||||
iconName: "view-fullscreen"
|
icon.name: "view-fullscreen"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
@ -96,27 +95,27 @@ Item
|
|||||||
id: exitFullScreenAction
|
id: exitFullScreenAction
|
||||||
shortcut: StandardKey.Cancel
|
shortcut: StandardKey.Cancel
|
||||||
text: catalog.i18nc("@action:inmenu", "Exit Full Screen")
|
text: catalog.i18nc("@action:inmenu", "Exit Full Screen")
|
||||||
iconName: "view-fullscreen"
|
icon.name: "view-fullscreen"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: undoAction;
|
id: undoAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit", "&Undo");
|
text: catalog.i18nc("@action:inmenu menubar:edit", "&Undo")
|
||||||
iconName: "edit-undo";
|
icon.name: "edit-undo"
|
||||||
shortcut: StandardKey.Undo;
|
shortcut: StandardKey.Undo
|
||||||
onTriggered: UM.OperationStack.undo();
|
onTriggered: UM.OperationStack.undo()
|
||||||
enabled: UM.OperationStack.canUndo;
|
enabled: UM.OperationStack.canUndo
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: redoAction;
|
id: redoAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit", "&Redo");
|
text: catalog.i18nc("@action:inmenu menubar:edit", "&Redo")
|
||||||
iconName: "edit-redo";
|
icon.name: "edit-redo"
|
||||||
shortcut: StandardKey.Redo;
|
shortcut: StandardKey.Redo
|
||||||
onTriggered: UM.OperationStack.redo();
|
onTriggered: UM.OperationStack.redo()
|
||||||
enabled: UM.OperationStack.canRedo;
|
enabled: UM.OperationStack.canRedo
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
@ -131,7 +130,7 @@ Item
|
|||||||
//- https://doc.qt.io/qt-5/macos-issues.html#menu-bar
|
//- 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
|
//- https://doc.qt.io/qt-5/qmenubar.html#qmenubar-as-a-global-menu-bar
|
||||||
text: (Qt.platform.os == "osx") ? "&Quit" : catalog.i18nc("@action:inmenu menubar:file", "&Quit")
|
text: (Qt.platform.os == "osx") ? "&Quit" : catalog.i18nc("@action:inmenu menubar:file", "&Quit")
|
||||||
iconName: "application-exit"
|
icon.name: "application-exit"
|
||||||
shortcut: StandardKey.Quit
|
shortcut: StandardKey.Quit
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,7 +187,7 @@ Item
|
|||||||
//- https://doc.qt.io/qt-5/macos-issues.html#menu-bar
|
//- 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
|
//- https://doc.qt.io/qt-5/qmenubar.html#qmenubar-as-a-global-menu-bar
|
||||||
text: (Qt.platform.os == "osx") ? "Configure Cura..." : catalog.i18nc("@action:inmenu", "Configure Cura...")
|
text: (Qt.platform.os == "osx") ? "Configure Cura..." : catalog.i18nc("@action:inmenu", "Configure Cura...")
|
||||||
iconName: "configure"
|
icon.name: "configure"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
@ -201,14 +200,14 @@ Item
|
|||||||
{
|
{
|
||||||
id: settingsAction
|
id: settingsAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:printer", "Manage Pr&inters...")
|
text: catalog.i18nc("@action:inmenu menubar:printer", "Manage Pr&inters...")
|
||||||
iconName: "configure"
|
icon.name: "configure"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: manageMaterialsAction
|
id: manageMaterialsAction
|
||||||
text: catalog.i18nc("@action:inmenu", "Manage Materials...")
|
text: catalog.i18nc("@action:inmenu", "Manage Materials...")
|
||||||
iconName: "configure"
|
icon.name: "configure"
|
||||||
shortcut: "Ctrl+K"
|
shortcut: "Ctrl+K"
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -220,64 +219,64 @@ Item
|
|||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: updateProfileAction;
|
id: updateProfileAction
|
||||||
enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings && Cura.MachineManager.activeQualityChangesGroup != null
|
enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings && Cura.MachineManager.activeQualityChangesGroup != null
|
||||||
text: catalog.i18nc("@action:inmenu menubar:profile","&Update profile with current settings/overrides");
|
text: catalog.i18nc("@action:inmenu menubar:profile","&Update profile with current settings/overrides")
|
||||||
onTriggered: Cura.ContainerManager.updateQualityChanges();
|
onTriggered: Cura.ContainerManager.updateQualityChanges()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: resetProfileAction;
|
id: resetProfileAction
|
||||||
enabled: Cura.MachineManager.hasUserSettings
|
enabled: Cura.MachineManager.hasUserSettings
|
||||||
text: catalog.i18nc("@action:inmenu menubar:profile", "&Discard current changes");
|
text: catalog.i18nc("@action:inmenu menubar:profile", "&Discard current changes")
|
||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
forceActiveFocus();
|
forceActiveFocus()
|
||||||
Cura.ContainerManager.clearUserContainers();
|
Cura.ContainerManager.clearUserContainers()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: addProfileAction;
|
id: addProfileAction
|
||||||
enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings
|
enabled: !Cura.MachineManager.stacksHaveErrors && Cura.MachineManager.hasUserSettings
|
||||||
text: catalog.i18nc("@action:inmenu menubar:profile", "&Create profile from current settings/overrides...");
|
text: catalog.i18nc("@action:inmenu menubar:profile", "&Create profile from current settings/overrides...")
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: manageProfilesAction
|
id: manageProfilesAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:profile", "Manage Profiles...")
|
text: catalog.i18nc("@action:inmenu menubar:profile", "Manage Profiles...")
|
||||||
iconName: "configure"
|
icon.name: "configure"
|
||||||
shortcut: "Ctrl+J"
|
shortcut: "Ctrl+J"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: documentationAction;
|
id: documentationAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:help", "Show Online &Documentation");
|
text: catalog.i18nc("@action:inmenu menubar:help", "Show Online &Documentation")
|
||||||
iconName: "help-contents";
|
icon.name: "help-contents"
|
||||||
shortcut: StandardKey.Help;
|
shortcut: StandardKey.Help
|
||||||
onTriggered: CuraActions.openDocumentation();
|
onTriggered: CuraActions.openDocumentation()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action {
|
Action {
|
||||||
id: reportBugAction;
|
id: reportBugAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:help", "Report a &Bug");
|
text: catalog.i18nc("@action:inmenu menubar:help", "Report a &Bug")
|
||||||
iconName: "tools-report-bug";
|
icon.name: "tools-report-bug"
|
||||||
onTriggered: CuraActions.openBugReportPage();
|
onTriggered: CuraActions.openBugReportPage()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: whatsNewAction;
|
id: whatsNewAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:help", "What's New");
|
text: catalog.i18nc("@action:inmenu menubar:help", "What's New")
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: aboutAction;
|
id: aboutAction
|
||||||
|
|
||||||
//On MacOS, don't translate the "About" word.
|
//On MacOS, don't translate the "About" word.
|
||||||
//Qt moves the "about" entry to a different place, and if it got renamed can't find it again when it
|
//Qt moves the "about" entry to a different place, and if it got renamed can't find it again when it
|
||||||
@ -286,60 +285,60 @@ Item
|
|||||||
//For more information, see:
|
//For more information, see:
|
||||||
//- https://doc.qt.io/qt-5/macos-issues.html#menu-bar
|
//- 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
|
//- https://doc.qt.io/qt-5/qmenubar.html#qmenubar-as-a-global-menu-bar
|
||||||
text: (Qt.platform.os == "osx") ? "About..." : catalog.i18nc("@action:inmenu menubar:help", "About...");
|
text: (Qt.platform.os == "osx") ? "About..." : catalog.i18nc("@action:inmenu menubar:help", "About...")
|
||||||
iconName: "help-about";
|
icon.name: "help-about"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: deleteSelectionAction;
|
id: deleteSelectionAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit", "Delete Selected");
|
text: catalog.i18nc("@action:inmenu menubar:edit", "Delete Selected")
|
||||||
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection;
|
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection
|
||||||
iconName: "edit-delete";
|
icon.name: "edit-delete"
|
||||||
shortcut: StandardKey.Delete | "Backspace"
|
shortcut: StandardKey.Delete | "Backspace"
|
||||||
onTriggered: CuraActions.deleteSelection();
|
onTriggered: CuraActions.deleteSelection()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: centerSelectionAction;
|
id: centerSelectionAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit", "Center Selected");
|
text: catalog.i18nc("@action:inmenu menubar:edit", "Center Selected")
|
||||||
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection;
|
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection
|
||||||
iconName: "align-vertical-center";
|
icon.name: "align-vertical-center"
|
||||||
onTriggered: CuraActions.centerSelection();
|
onTriggered: CuraActions.centerSelection()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: multiplySelectionAction;
|
id: multiplySelectionAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit", "Multiply Selected");
|
text: catalog.i18nc("@action:inmenu menubar:edit", "Multiply Selected")
|
||||||
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection;
|
enabled: UM.Controller.toolsEnabled && UM.Selection.hasSelection
|
||||||
iconName: "edit-duplicate";
|
icon.name: "edit-duplicate"
|
||||||
shortcut: "Ctrl+M"
|
shortcut: "Ctrl+M"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: deleteObjectAction;
|
id: deleteObjectAction
|
||||||
text: catalog.i18nc("@action:inmenu","Delete Model");
|
text: catalog.i18nc("@action:inmenu","Delete Model")
|
||||||
enabled: UM.Controller.toolsEnabled;
|
enabled: UM.Controller.toolsEnabled
|
||||||
iconName: "edit-delete";
|
icon.name: "edit-delete"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: centerObjectAction;
|
id: centerObjectAction
|
||||||
text: catalog.i18nc("@action:inmenu","Ce&nter Model on Platform");
|
text: catalog.i18nc("@action:inmenu","Ce&nter Model on Platform")
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: groupObjectsAction
|
id: groupObjectsAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","&Group Models");
|
text: catalog.i18nc("@action:inmenu menubar:edit","&Group Models")
|
||||||
enabled: UM.Selection.selectionCount > 1 ? true: false
|
enabled: UM.Selection.selectionCount > 1 ? true: false
|
||||||
iconName: "object-group"
|
icon.name: "object-group"
|
||||||
shortcut: "Ctrl+G";
|
shortcut: "Ctrl+G"
|
||||||
onTriggered: CuraApplication.groupSelected();
|
onTriggered: CuraApplication.groupSelected()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
@ -355,132 +354,132 @@ Item
|
|||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: unGroupObjectsAction
|
id: unGroupObjectsAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Ungroup Models");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Ungroup Models")
|
||||||
enabled: UM.Selection.isGroupSelected
|
enabled: UM.Selection.isGroupSelected
|
||||||
iconName: "object-ungroup"
|
icon.name: "object-ungroup"
|
||||||
shortcut: "Ctrl+Shift+G";
|
shortcut: "Ctrl+Shift+G"
|
||||||
onTriggered: CuraApplication.ungroupSelected();
|
onTriggered: CuraApplication.ungroupSelected()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: mergeObjectsAction
|
id: mergeObjectsAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","&Merge Models");
|
text: catalog.i18nc("@action:inmenu menubar:edit","&Merge Models")
|
||||||
enabled: UM.Selection.selectionCount > 1 ? true: false
|
enabled: UM.Selection.selectionCount > 1 ? true: false
|
||||||
iconName: "merge";
|
icon.name: "merge"
|
||||||
shortcut: "Ctrl+Alt+G";
|
shortcut: "Ctrl+Alt+G"
|
||||||
onTriggered: CuraApplication.mergeSelected();
|
onTriggered: CuraApplication.mergeSelected()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: multiplyObjectAction;
|
id: multiplyObjectAction
|
||||||
text: catalog.i18nc("@action:inmenu","&Multiply Model...");
|
text: catalog.i18nc("@action:inmenu","&Multiply Model...")
|
||||||
iconName: "edit-duplicate"
|
icon.name: "edit-duplicate"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: selectAllAction;
|
id: selectAllAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Select All Models");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Select All Models")
|
||||||
enabled: UM.Controller.toolsEnabled;
|
enabled: UM.Controller.toolsEnabled
|
||||||
iconName: "edit-select-all";
|
icon.name: "edit-select-all"
|
||||||
shortcut: "Ctrl+A";
|
shortcut: "Ctrl+A"
|
||||||
onTriggered: CuraApplication.selectAll();
|
onTriggered: CuraApplication.selectAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: deleteAllAction;
|
id: deleteAllAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Clear Build Plate");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Clear Build Plate")
|
||||||
enabled: UM.Controller.toolsEnabled;
|
enabled: UM.Controller.toolsEnabled
|
||||||
iconName: "edit-delete";
|
icon.name: "edit-delete"
|
||||||
shortcut: "Ctrl+D";
|
shortcut: "Ctrl+D"
|
||||||
onTriggered: CuraApplication.deleteAll();
|
onTriggered: CuraApplication.deleteAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: reloadAllAction;
|
id: reloadAllAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:file","Reload All Models");
|
text: catalog.i18nc("@action:inmenu menubar:file","Reload All Models")
|
||||||
iconName: "document-revert";
|
icon.name: "document-revert"
|
||||||
shortcut: "F5"
|
shortcut: "F5"
|
||||||
onTriggered: CuraApplication.reloadAll();
|
onTriggered: CuraApplication.reloadAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: arrangeAllBuildPlatesAction;
|
id: arrangeAllBuildPlatesAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Arrange All Models To All Build Plates");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Arrange All Models To All Build Plates")
|
||||||
onTriggered: Printer.arrangeObjectsToAllBuildPlates();
|
onTriggered: Printer.arrangeObjectsToAllBuildPlates()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: arrangeAllAction;
|
id: arrangeAllAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Arrange All Models");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Arrange All Models")
|
||||||
onTriggered: Printer.arrangeAll();
|
onTriggered: Printer.arrangeAll()
|
||||||
shortcut: "Ctrl+R";
|
shortcut: "Ctrl+R"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: arrangeSelectionAction;
|
id: arrangeSelectionAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Arrange Selection");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Arrange Selection")
|
||||||
onTriggered: Printer.arrangeSelection();
|
onTriggered: Printer.arrangeSelection()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: resetAllTranslationAction;
|
id: resetAllTranslationAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Model Positions");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Model Positions")
|
||||||
onTriggered: CuraApplication.resetAllTranslation();
|
onTriggered: CuraApplication.resetAllTranslation()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: resetAllAction;
|
id: resetAllAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Model Transformations");
|
text: catalog.i18nc("@action:inmenu menubar:edit","Reset All Model Transformations")
|
||||||
onTriggered: CuraApplication.resetAll();
|
onTriggered: CuraApplication.resetAll()
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: openAction;
|
id: openAction
|
||||||
property var fileProviderModel: CuraApplication.getFileProviderModel()
|
property var fileProviderModel: CuraApplication.getFileProviderModel()
|
||||||
|
|
||||||
text: catalog.i18nc("@action:inmenu menubar:file","&Open File(s)...");
|
text: catalog.i18nc("@action:inmenu menubar:file","&Open File(s)...")
|
||||||
iconName: "document-open";
|
icon.name: "document-open"
|
||||||
// Unassign the shortcut when there are more than one file providers, since then the file provider's shortcut is
|
// Unassign the shortcut when there are more than one file providers, since then the file provider's shortcut is
|
||||||
// enabled instead, and Ctrl+O is assigned to the local file provider
|
// enabled instead, and Ctrl+O is assigned to the local file provider
|
||||||
shortcut: fileProviderModel.count == 1 ? StandardKey.Open : "";
|
shortcut: fileProviderModel.count == 1 ? StandardKey.Open : ""
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: newProjectAction
|
id: newProjectAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:file","&New Project...");
|
text: catalog.i18nc("@action:inmenu menubar:file","&New Project...")
|
||||||
shortcut: StandardKey.New
|
shortcut: StandardKey.New
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: showProfileFolderAction;
|
id: showProfileFolderAction
|
||||||
text: catalog.i18nc("@action:inmenu menubar:help","Show Configuration Folder");
|
text: catalog.i18nc("@action:inmenu menubar:help","Show Configuration Folder")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: configureSettingVisibilityAction
|
id: configureSettingVisibilityAction
|
||||||
text: catalog.i18nc("@action:menu", "Configure setting visibility...");
|
text: catalog.i18nc("@action:menu", "Configure setting visibility...")
|
||||||
iconName: "configure"
|
icon.name: "configure"
|
||||||
}
|
}
|
||||||
|
|
||||||
Action
|
Action
|
||||||
{
|
{
|
||||||
id: browsePackagesAction
|
id: browsePackagesAction
|
||||||
text: catalog.i18nc("@action:menu", "&Marketplace")
|
text: catalog.i18nc("@action:menu", "&Marketplace")
|
||||||
iconName: "plugins_browse"
|
icon.name: "plugins_browse"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,8 @@ import QtQuick.Controls 1.4
|
|||||||
import QtQuick.Layouts 1.1
|
import QtQuick.Layouts 1.1
|
||||||
import QtQuick.Dialogs 1.2
|
import QtQuick.Dialogs 1.2
|
||||||
import QtGraphicalEffects 1.0
|
import QtGraphicalEffects 1.0
|
||||||
|
import QtQuick.Controls 2.15 as NewControls
|
||||||
import UM 1.3 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.1 as Cura
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
import "Dialogs"
|
import "Dialogs"
|
||||||
@ -160,7 +160,6 @@ UM.MainWindow
|
|||||||
ApplicationMenu
|
ApplicationMenu
|
||||||
{
|
{
|
||||||
id: applicationMenu
|
id: applicationMenu
|
||||||
window: base
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Item
|
Item
|
||||||
|
@ -2,11 +2,10 @@
|
|||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.7
|
import QtQuick 2.7
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 2.4
|
||||||
import QtQuick.Layouts 1.1
|
|
||||||
import QtQuick.Dialogs 1.2
|
import QtQuick.Dialogs 1.2
|
||||||
|
|
||||||
import UM 1.3 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.1 as Cura
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
import "../Menus"
|
import "../Menus"
|
||||||
@ -15,37 +14,19 @@ import "../Dialogs"
|
|||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
id: menu
|
id: menu
|
||||||
width: applicationMenu.width
|
width: parent.width
|
||||||
height: applicationMenu.height
|
height: applicationMenu.height
|
||||||
property alias window: applicationMenu.window
|
|
||||||
|
|
||||||
UM.ApplicationMenu
|
MenuBar
|
||||||
{
|
{
|
||||||
id: applicationMenu
|
id: applicationMenu
|
||||||
|
width: parent.width
|
||||||
|
FileMenu {}
|
||||||
|
|
||||||
FileMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&File") }
|
EditMenu {}
|
||||||
|
ViewMenu {}
|
||||||
|
|
||||||
Menu
|
background: Rectangle {}
|
||||||
{
|
|
||||||
title: catalog.i18nc("@title:menu menubar:toplevel", "&Edit")
|
|
||||||
|
|
||||||
MenuItem { action: Cura.Actions.undo }
|
|
||||||
MenuItem { action: Cura.Actions.redo }
|
|
||||||
MenuSeparator { }
|
|
||||||
MenuItem { action: Cura.Actions.selectAll }
|
|
||||||
MenuItem { action: Cura.Actions.arrangeAll }
|
|
||||||
MenuItem { action: Cura.Actions.multiplySelection }
|
|
||||||
MenuItem { action: Cura.Actions.deleteSelection }
|
|
||||||
MenuItem { action: Cura.Actions.deleteAll }
|
|
||||||
MenuItem { action: Cura.Actions.resetAllTranslation }
|
|
||||||
MenuItem { action: Cura.Actions.resetAll }
|
|
||||||
MenuSeparator { }
|
|
||||||
MenuItem { action: Cura.Actions.groupObjects }
|
|
||||||
MenuItem { action: Cura.Actions.mergeObjects }
|
|
||||||
MenuItem { action: Cura.Actions.unGroupObjects }
|
|
||||||
}
|
|
||||||
|
|
||||||
ViewMenu { title: catalog.i18nc("@title:menu menubar:toplevel", "&View") }
|
|
||||||
|
|
||||||
SettingsMenu
|
SettingsMenu
|
||||||
{
|
{
|
||||||
@ -59,92 +40,14 @@ Item
|
|||||||
title: (Qt.platform.os == "osx") ? "&Settings" : catalog.i18nc("@title:menu menubar:toplevel", "&Settings")
|
title: (Qt.platform.os == "osx") ? "&Settings" : catalog.i18nc("@title:menu menubar:toplevel", "&Settings")
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu
|
ExtensionMenu {}
|
||||||
{
|
|
||||||
id: extensionMenu
|
|
||||||
title: catalog.i18nc("@title:menu menubar:toplevel", "E&xtensions")
|
|
||||||
|
|
||||||
Instantiator
|
PreferencesMenu {}
|
||||||
{
|
|
||||||
id: extensions
|
|
||||||
model: UM.ExtensionModel { }
|
|
||||||
|
|
||||||
Menu
|
HelpMenu {}
|
||||||
{
|
|
||||||
id: sub_menu
|
|
||||||
title: model.name;
|
|
||||||
visible: actions != null
|
|
||||||
enabled: actions != null
|
|
||||||
Instantiator
|
|
||||||
{
|
|
||||||
model: actions
|
|
||||||
Loader
|
|
||||||
{
|
|
||||||
property var extensionsModel: extensions.model
|
|
||||||
property var modelText: model.text
|
|
||||||
property var extensionName: name
|
|
||||||
|
|
||||||
sourceComponent: modelText.trim() == "" ? extensionsMenuSeparator : extensionsMenuItem
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onObjectAdded: sub_menu.insertItem(index, object.item)
|
|
||||||
onObjectRemoved: sub_menu.removeItem(object.item)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onObjectAdded: extensionMenu.insertItem(index, object)
|
|
||||||
onObjectRemoved: extensionMenu.removeItem(object)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu
|
|
||||||
{
|
|
||||||
id: preferencesMenu
|
|
||||||
|
|
||||||
//On MacOS, don't translate the "Preferences" word.
|
|
||||||
//Qt moves the "preferences" 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") ? "&Preferences" : catalog.i18nc("@title:menu menubar:toplevel", "P&references")
|
|
||||||
|
|
||||||
MenuItem { action: Cura.Actions.preferences }
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu
|
|
||||||
{
|
|
||||||
id: helpMenu
|
|
||||||
title: catalog.i18nc("@title:menu menubar:toplevel", "&Help")
|
|
||||||
|
|
||||||
MenuItem { action: Cura.Actions.showProfileFolder }
|
|
||||||
MenuItem { action: Cura.Actions.showTroubleshooting}
|
|
||||||
MenuItem { action: Cura.Actions.documentation }
|
|
||||||
MenuItem { action: Cura.Actions.reportBug }
|
|
||||||
MenuSeparator { }
|
|
||||||
MenuItem { action: Cura.Actions.whatsNew }
|
|
||||||
MenuItem { action: Cura.Actions.about }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component
|
|
||||||
{
|
|
||||||
id: extensionsMenuItem
|
|
||||||
|
|
||||||
MenuItem
|
|
||||||
{
|
|
||||||
text: modelText
|
|
||||||
onTriggered: extensionsModel.subMenuTriggered(extensionName, modelText)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Component
|
|
||||||
{
|
|
||||||
id: extensionsMenuSeparator
|
|
||||||
|
|
||||||
MenuSeparator {}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// ###############################################################################################
|
// ###############################################################################################
|
||||||
@ -174,11 +77,6 @@ Item
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
UM.ExtensionModel
|
|
||||||
{
|
|
||||||
id: curaExtensions
|
|
||||||
}
|
|
||||||
|
|
||||||
// ###############################################################################################
|
// ###############################################################################################
|
||||||
// Definition of all the connections
|
// Definition of all the connections
|
||||||
// ###############################################################################################
|
// ###############################################################################################
|
||||||
|
@ -3,7 +3,6 @@
|
|||||||
|
|
||||||
import QtQuick 2.10
|
import QtQuick 2.10
|
||||||
import QtQuick.Controls 2.3
|
import QtQuick.Controls 2.3
|
||||||
import QtQuick.Controls.Styles 1.4
|
|
||||||
import QtQuick.Layouts 1.3
|
import QtQuick.Layouts 1.3
|
||||||
|
|
||||||
import UM 1.5 as UM
|
import UM 1.5 as UM
|
||||||
@ -19,7 +18,7 @@ Cura.ExpandablePopup
|
|||||||
id: base
|
id: base
|
||||||
|
|
||||||
property var extrudersModel: CuraApplication.getExtrudersModel()
|
property var extrudersModel: CuraApplication.getExtrudersModel()
|
||||||
|
property var activeMachine: Cura.MachineManager.activeMachine
|
||||||
UM.I18nCatalog
|
UM.I18nCatalog
|
||||||
{
|
{
|
||||||
id: catalog
|
id: catalog
|
||||||
@ -33,7 +32,7 @@ Cura.ExpandablePopup
|
|||||||
}
|
}
|
||||||
|
|
||||||
contentPadding: UM.Theme.getSize("default_lining").width
|
contentPadding: UM.Theme.getSize("default_lining").width
|
||||||
enabled: Cura.MachineManager.activeMachine ? Cura.MachineManager.activeMachine.hasMaterials || Cura.MachineManager.activeMachine.hasVariants || Cura.MachineManager.activeMachine.hasVariantBuildplates : false; //Only let it drop down if there is any configuration that you could change.
|
enabled: activeMachine ? activeMachine.hasMaterials || activeMachine.hasVariants || activeMachine.hasVariantBuildplates : false; //Only let it drop down if there is any configuration that you could change.
|
||||||
|
|
||||||
headerItem: Item
|
headerItem: Item
|
||||||
{
|
{
|
||||||
@ -44,7 +43,7 @@ Cura.ExpandablePopup
|
|||||||
anchors.bottom: parent.bottom
|
anchors.bottom: parent.bottom
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
width: parent.width - UM.Theme.getSize("standard_arrow").width
|
width: parent.width - UM.Theme.getSize("standard_arrow").width
|
||||||
visible: Cura.MachineManager.activeMachine ? Cura.MachineManager.activeMachine.hasMaterials : false
|
visible: activeMachine ? activeMachine.hasMaterials : false
|
||||||
Repeater
|
Repeater
|
||||||
{
|
{
|
||||||
model: extrudersModel
|
model: extrudersModel
|
||||||
@ -56,9 +55,9 @@ Cura.ExpandablePopup
|
|||||||
Layout.maximumWidth: Math.round(parent.width / extrudersModel.count)
|
Layout.maximumWidth: Math.round(parent.width / extrudersModel.count)
|
||||||
Layout.fillHeight: true
|
Layout.fillHeight: true
|
||||||
|
|
||||||
property var extruderStack: Cura.MachineManager.activeMachine.extruders[model.index]
|
property var extruderStack: activeMachine ? activeMachine.extruders[model.index]: null
|
||||||
property bool valueWarning: !Cura.ExtruderManager.getExtruderHasQualityForMaterial(extruderStack)
|
property bool valueWarning: !Cura.ExtruderManager.getExtruderHasQualityForMaterial(extruderStack)
|
||||||
property bool valueError: Cura.ContainerManager.getContainerMetaDataEntry(extruderStack.material.id, "compatible", "") != "True"
|
property bool valueError: activeMachine ? Cura.ContainerManager.getContainerMetaDataEntry(extruderStack.material.id, "compatible", "") != "True" : false
|
||||||
|
|
||||||
// Extruder icon. Shows extruder index and has the same color as the active material.
|
// Extruder icon. Shows extruder index and has the same color as the active material.
|
||||||
Cura.ExtruderIcon
|
Cura.ExtruderIcon
|
||||||
@ -224,7 +223,7 @@ Cura.ExpandablePopup
|
|||||||
{
|
{
|
||||||
id: variantLabel
|
id: variantLabel
|
||||||
|
|
||||||
visible: Cura.MachineManager.activeMachine ? Cura.MachineManager.activeMachine.hasVariants : false
|
visible: activeMachine ? activeMachine.hasVariants : false
|
||||||
|
|
||||||
text: model.variant
|
text: model.variant
|
||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
@ -243,7 +242,7 @@ Cura.ExpandablePopup
|
|||||||
elide: Text.ElideRight
|
elide: Text.ElideRight
|
||||||
font: UM.Theme.getFont("medium")
|
font: UM.Theme.getFont("medium")
|
||||||
|
|
||||||
visible: Cura.MachineManager.activeMachine ? !Cura.MachineManager.activeMachine.hasMaterials && (Cura.MachineManager.activeMachine.hasVariants || Cura.MachineManager.activeMachine.hasVariantBuildplates) : false
|
visible: activeMachine ? !activeMachine.hasMaterials && (activeMachine.hasVariants || activeMachine.hasVariantBuildplates) : false
|
||||||
|
|
||||||
anchors
|
anchors
|
||||||
{
|
{
|
||||||
@ -268,7 +267,7 @@ Cura.ExpandablePopup
|
|||||||
|
|
||||||
onVisibleChanged:
|
onVisibleChanged:
|
||||||
{
|
{
|
||||||
is_connected = Cura.MachineManager.activeMachine.hasRemoteConnection && Cura.MachineManager.printerConnected && Cura.MachineManager.printerOutputDevices[0].uniqueConfigurations.length > 0 //Re-evaluate.
|
is_connected = activeMachine.hasRemoteConnection && Cura.MachineManager.printerConnected && Cura.MachineManager.printerOutputDevices[0].uniqueConfigurations.length > 0 //Re-evaluate.
|
||||||
|
|
||||||
// If the printer is not connected or does not have configurations, we switch always to the custom mode. If is connected instead, the auto mode
|
// If the printer is not connected or does not have configurations, we switch always to the custom mode. If is connected instead, the auto mode
|
||||||
// or the previous state is selected
|
// or the previous state is selected
|
||||||
|
@ -35,7 +35,7 @@ Item
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Printer type selector.
|
// Printer type selector.
|
||||||
Item
|
Item
|
||||||
{
|
{
|
||||||
id: printerTypeSelectorRow
|
id: printerTypeSelectorRow
|
||||||
@ -64,17 +64,18 @@ Item
|
|||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
}
|
}
|
||||||
|
|
||||||
OldControls.ToolButton
|
Button
|
||||||
{
|
{
|
||||||
id: printerTypeSelector
|
id: printerTypeSelector
|
||||||
text: Cura.MachineManager.activeMachine !== null ? Cura.MachineManager.activeMachine.definition.name: ""
|
text: Cura.MachineManager.activeMachine !== null ? Cura.MachineManager.activeMachine.definition.name: ""
|
||||||
tooltip: text
|
|
||||||
height: UM.Theme.getSize("print_setup_big_item").height
|
height: UM.Theme.getSize("print_setup_big_item").height
|
||||||
width: Math.round(parent.width * 0.7) + UM.Theme.getSize("default_margin").width
|
width: Math.round(parent.width * 0.7) + UM.Theme.getSize("default_margin").width
|
||||||
anchors.right: parent.right
|
anchors.right: parent.right
|
||||||
style: UM.Theme.styles.print_setup_header_button
|
onClicked: menu.open()
|
||||||
|
//style: UM.Theme.styles.print_setup_header_button
|
||||||
|
|
||||||
menu: Cura.PrinterTypeMenu { }
|
Cura.PrinterTypeMenu { id: menu}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.1
|
||||||
import QtQuick.Dialogs 1.2
|
import QtQuick.Dialogs 1.2
|
||||||
import QtQuick.Window 2.1
|
import QtQuick.Window 2.1
|
||||||
|
|
||||||
import UM 1.2 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Menu
|
Menu
|
||||||
@ -18,79 +18,59 @@ Menu
|
|||||||
property var multiBuildPlateModel: CuraApplication.getMultiBuildPlateModel()
|
property var multiBuildPlateModel: CuraApplication.getMultiBuildPlateModel()
|
||||||
|
|
||||||
// Selection-related actions.
|
// Selection-related actions.
|
||||||
MenuItem { action: Cura.Actions.centerSelection; }
|
UM.MenuItem { action: Cura.Actions.centerSelection; }
|
||||||
MenuItem { action: Cura.Actions.deleteSelection; }
|
UM.MenuItem { action: Cura.Actions.deleteSelection; }
|
||||||
MenuItem { action: Cura.Actions.multiplySelection; }
|
UM.MenuItem { action: Cura.Actions.multiplySelection; }
|
||||||
|
|
||||||
// Extruder selection - only visible if there is more than 1 extruder
|
// Extruder selection - only visible if there is more than 1 extruder
|
||||||
MenuSeparator { visible: base.shouldShowExtruders }
|
MenuSeparator { visible: base.shouldShowExtruders }
|
||||||
MenuItem { id: extruderHeader; text: catalog.i18ncp("@label", "Print Selected Model With:", "Print Selected Models With:", UM.Selection.selectionCount); enabled: false; visible: base.shouldShowExtruders }
|
UM.MenuItem
|
||||||
|
{
|
||||||
|
id: extruderHeader
|
||||||
|
text: catalog.i18ncp("@label", "Print Selected Model With:", "Print Selected Models With:", UM.Selection.selectionCount)
|
||||||
|
enabled: false
|
||||||
|
visible: base.shouldShowExtruders
|
||||||
|
height: visible ? implicitHeight: 0
|
||||||
|
}
|
||||||
|
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
model: CuraApplication.getExtrudersModel()
|
model: CuraApplication.getExtrudersModel()
|
||||||
MenuItem {
|
UM.MenuItem
|
||||||
|
{
|
||||||
text: "%1: %2 - %3".arg(model.name).arg(model.material).arg(model.variant)
|
text: "%1: %2 - %3".arg(model.name).arg(model.material).arg(model.variant)
|
||||||
visible: base.shouldShowExtruders
|
visible: base.shouldShowExtruders
|
||||||
|
height: visible ? implicitHeight: 0
|
||||||
enabled: UM.Selection.hasSelection && model.enabled
|
enabled: UM.Selection.hasSelection && model.enabled
|
||||||
checkable: true
|
checkable: true
|
||||||
checked: Cura.ExtruderManager.selectedObjectExtruders.indexOf(model.id) != -1
|
checked: Cura.ExtruderManager.selectedObjectExtruders.indexOf(model.id) != -1
|
||||||
onTriggered: CuraActions.setExtruderForSelection(model.id)
|
onTriggered: CuraActions.setExtruderForSelection(model.id)
|
||||||
shortcut: "Ctrl+" + (model.index + 1)
|
shortcut: "Ctrl+" + (model.index + 1)
|
||||||
}
|
}
|
||||||
onObjectAdded: base.insertItem(index, object)
|
// Add it to the fifth position (and above) as we want it to be added after the extruder header.
|
||||||
|
onObjectAdded: base.insertItem(index + 5, object)
|
||||||
onObjectRemoved: base.removeItem(object)
|
onObjectRemoved: base.removeItem(object)
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator {
|
|
||||||
visible: UM.Preferences.getValue("cura/use_multi_build_plate")
|
|
||||||
}
|
|
||||||
|
|
||||||
Instantiator
|
|
||||||
{
|
|
||||||
model: base.multiBuildPlateModel
|
|
||||||
MenuItem {
|
|
||||||
enabled: UM.Selection.hasSelection
|
|
||||||
text: base.multiBuildPlateModel.getItem(index).name;
|
|
||||||
onTriggered: CuraActions.setBuildPlateForSelection(base.multiBuildPlateModel.getItem(index).buildPlateNumber);
|
|
||||||
checkable: true
|
|
||||||
checked: base.multiBuildPlateModel.selectionBuildPlates.indexOf(base.multiBuildPlateModel.getItem(index).buildPlateNumber) != -1;
|
|
||||||
visible: UM.Preferences.getValue("cura/use_multi_build_plate")
|
|
||||||
}
|
|
||||||
onObjectAdded: base.insertItem(index, object);
|
|
||||||
onObjectRemoved: base.removeItem(object);
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuItem {
|
|
||||||
enabled: UM.Selection.hasSelection
|
|
||||||
text: "New build plate";
|
|
||||||
onTriggered: {
|
|
||||||
CuraActions.setBuildPlateForSelection(base.multiBuildPlateModel.maxBuildPlate + 1);
|
|
||||||
checked = false;
|
|
||||||
}
|
|
||||||
checkable: true
|
|
||||||
checked: false
|
|
||||||
visible: UM.Preferences.getValue("cura/use_multi_build_plate")
|
|
||||||
}
|
|
||||||
|
|
||||||
// Global actions
|
// Global actions
|
||||||
MenuSeparator {}
|
MenuSeparator {}
|
||||||
MenuItem { action: Cura.Actions.selectAll; }
|
UM.MenuItem { action: Cura.Actions.selectAll }
|
||||||
MenuItem { action: Cura.Actions.arrangeAll; }
|
UM.MenuItem { action: Cura.Actions.arrangeAll }
|
||||||
MenuItem { action: Cura.Actions.deleteAll; }
|
UM.MenuItem { action: Cura.Actions.deleteAll }
|
||||||
MenuItem { action: Cura.Actions.reloadAll; }
|
UM.MenuItem { action: Cura.Actions.reloadAll }
|
||||||
MenuItem { action: Cura.Actions.resetAllTranslation; }
|
UM.MenuItem { action: Cura.Actions.resetAllTranslation }
|
||||||
MenuItem { action: Cura.Actions.resetAll; }
|
UM.MenuItem { action: Cura.Actions.resetAll }
|
||||||
|
|
||||||
// Group actions
|
// Group actions
|
||||||
MenuSeparator {}
|
MenuSeparator {}
|
||||||
MenuItem { action: Cura.Actions.groupObjects; }
|
UM.MenuItem { action: Cura.Actions.groupObjects }
|
||||||
MenuItem { action: Cura.Actions.mergeObjects; }
|
UM.MenuItem { action: Cura.Actions.mergeObjects }
|
||||||
MenuItem { action: Cura.Actions.unGroupObjects; }
|
UM.MenuItem { action: Cura.Actions.unGroupObjects }
|
||||||
|
|
||||||
Connections
|
Connections
|
||||||
{
|
{
|
||||||
target: UM.Controller
|
target: UM.Controller
|
||||||
function onContextMenuRequested() { base.popup(); }
|
function onContextMenuRequested() { base.popup() }
|
||||||
}
|
}
|
||||||
|
|
||||||
Connections
|
Connections
|
||||||
@ -146,31 +126,9 @@ Menu
|
|||||||
{
|
{
|
||||||
id: copiesField
|
id: copiesField
|
||||||
focus: true
|
focus: true
|
||||||
minimumValue: 1
|
from: 1
|
||||||
maximumValue: 99
|
to: 99
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Find the index of an item in the list of child items of this menu.
|
|
||||||
//
|
|
||||||
// This is primarily intended as a helper function so we do not have to
|
|
||||||
// hard-code the position of the extruder selection actions.
|
|
||||||
//
|
|
||||||
// \param item The item to find the index of.
|
|
||||||
//
|
|
||||||
// \return The index of the item or -1 if it was not found.
|
|
||||||
function findItemIndex(item)
|
|
||||||
{
|
|
||||||
for(var i in base.items)
|
|
||||||
{
|
|
||||||
if(base.items[i] == item)
|
|
||||||
{
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
UM.I18nCatalog { id: catalog; name: "cura" }
|
|
||||||
}
|
}
|
||||||
|
28
resources/qml/Menus/EditMenu.qml
Normal file
28
resources/qml/Menus/EditMenu.qml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
|
import QtQuick 2.2
|
||||||
|
import QtQuick.Controls 2.1
|
||||||
|
|
||||||
|
import UM 1.6 as UM
|
||||||
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
|
Menu
|
||||||
|
{
|
||||||
|
title: catalog.i18nc("@title:menu menubar:toplevel", "&Edit")
|
||||||
|
|
||||||
|
UM.MenuItem { action: Cura.Actions.undo }
|
||||||
|
UM.MenuItem { action: Cura.Actions.redo }
|
||||||
|
MenuSeparator { }
|
||||||
|
UM.MenuItem { action: Cura.Actions.selectAll }
|
||||||
|
UM.MenuItem { action: Cura.Actions.arrangeAll }
|
||||||
|
UM.MenuItem { action: Cura.Actions.multiplySelection }
|
||||||
|
UM.MenuItem { action: Cura.Actions.deleteSelection }
|
||||||
|
UM.MenuItem { action: Cura.Actions.deleteAll }
|
||||||
|
UM.MenuItem { action: Cura.Actions.resetAllTranslation }
|
||||||
|
UM.MenuItem { action: Cura.Actions.resetAll }
|
||||||
|
MenuSeparator { }
|
||||||
|
UM.MenuItem { action: Cura.Actions.groupObjects }
|
||||||
|
UM.MenuItem { action: Cura.Actions.mergeObjects }
|
||||||
|
UM.MenuItem { action: Cura.Actions.unGroupObjects }
|
||||||
|
}
|
64
resources/qml/Menus/ExtensionMenu.qml
Normal file
64
resources/qml/Menus/ExtensionMenu.qml
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
// 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.0 as Cura
|
||||||
|
|
||||||
|
Menu
|
||||||
|
{
|
||||||
|
id: extensionMenu
|
||||||
|
title: catalog.i18nc("@title:menu menubar:toplevel", "E&xtensions")
|
||||||
|
|
||||||
|
Component
|
||||||
|
{
|
||||||
|
id: extensionsMenuItem
|
||||||
|
|
||||||
|
UM.MenuItem
|
||||||
|
{
|
||||||
|
text: modelText
|
||||||
|
onTriggered: extensionsModel.subMenuTriggered(extensionName, modelText)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Component
|
||||||
|
{
|
||||||
|
id: extensionsMenuSeparator
|
||||||
|
|
||||||
|
MenuSeparator {}
|
||||||
|
}
|
||||||
|
|
||||||
|
Instantiator
|
||||||
|
{
|
||||||
|
id: extensions
|
||||||
|
model: UM.ExtensionModel { }
|
||||||
|
|
||||||
|
UM.Menu
|
||||||
|
{
|
||||||
|
id: sub_menu
|
||||||
|
title: model.name
|
||||||
|
shouldBeVisible: actions !== undefined
|
||||||
|
enabled: actions != null
|
||||||
|
Instantiator
|
||||||
|
{
|
||||||
|
model: actions
|
||||||
|
Loader
|
||||||
|
{
|
||||||
|
property var extensionsModel: extensions.model
|
||||||
|
property var modelText: model.text
|
||||||
|
property var extensionName: name
|
||||||
|
|
||||||
|
sourceComponent: modelText.trim() == "" ? extensionsMenuSeparator : extensionsMenuItem
|
||||||
|
}
|
||||||
|
|
||||||
|
onObjectAdded: sub_menu.insertItem(index, object.item)
|
||||||
|
onObjectRemoved: sub_menu.removeItem(object.item)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
onObjectAdded: extensionMenu.insertMenu(index, object)
|
||||||
|
onObjectRemoved: extensionMenu.removeMenu(object)
|
||||||
|
}
|
||||||
|
}
|
@ -1,8 +1,8 @@
|
|||||||
// Copyright (c) 2018 Ultimaker B.V.
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.1
|
||||||
|
|
||||||
import UM 1.6 as UM
|
import UM 1.6 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
@ -13,31 +13,34 @@ Menu
|
|||||||
title: catalog.i18nc("@title:menu menubar:toplevel", "&File")
|
title: catalog.i18nc("@title:menu menubar:toplevel", "&File")
|
||||||
property var fileProviderModel: CuraApplication.getFileProviderModel()
|
property var fileProviderModel: CuraApplication.getFileProviderModel()
|
||||||
|
|
||||||
MenuItem
|
|
||||||
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
id: newProjectMenu
|
id: newProjectMenu
|
||||||
action: Cura.Actions.newProject
|
action: Cura.Actions.newProject
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
id: openMenu
|
id: openMenu
|
||||||
action: Cura.Actions.open
|
action: Cura.Actions.open
|
||||||
visible: (base.fileProviderModel.count == 1)
|
visible: base.fileProviderModel.count == 1
|
||||||
|
height: visible ? implicitHeight: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
OpenFilesMenu
|
OpenFilesMenu
|
||||||
{
|
{
|
||||||
id: openFilesMenu
|
id: openFilesMenu
|
||||||
visible: (base.fileProviderModel.count > 1)
|
|
||||||
|
shouldBeVisible: base.fileProviderModel.count > 1
|
||||||
}
|
}
|
||||||
|
|
||||||
RecentFilesMenu { }
|
RecentFilesMenu { }
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
id: saveWorkspaceMenu
|
id: saveWorkspaceMenu
|
||||||
shortcut: visible ? StandardKey.Save : ""
|
shortcut: StandardKey.Save
|
||||||
text: catalog.i18nc("@title:menu menubar:file", "&Save Project...")
|
text: catalog.i18nc("@title:menu menubar:file", "&Save Project...")
|
||||||
visible: saveProjectMenu.model.count == 1
|
visible: saveProjectMenu.model.count == 1
|
||||||
enabled: UM.WorkspaceFileHandler.enabled
|
enabled: UM.WorkspaceFileHandler.enabled
|
||||||
@ -62,13 +65,13 @@ Menu
|
|||||||
{
|
{
|
||||||
id: saveProjectMenu
|
id: saveProjectMenu
|
||||||
model: projectOutputDevicesModel
|
model: projectOutputDevicesModel
|
||||||
visible: model.count > 1
|
shouldBeVisible: model.count > 1
|
||||||
enabled: UM.WorkspaceFileHandler.enabled
|
enabled: UM.WorkspaceFileHandler.enabled
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator { }
|
MenuSeparator { }
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
id: saveAsMenu
|
id: saveAsMenu
|
||||||
text: catalog.i18nc("@title:menu menubar:file", "&Export...")
|
text: catalog.i18nc("@title:menu menubar:file", "&Export...")
|
||||||
@ -79,18 +82,18 @@ Menu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
id: exportSelectionMenu
|
id: exportSelectionMenu
|
||||||
text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
|
text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
|
||||||
enabled: UM.Selection.hasSelection
|
enabled: UM.Selection.hasSelection
|
||||||
iconName: "document-save-as"
|
icon.name: "document-save-as"
|
||||||
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
|
onTriggered: UM.OutputDeviceManager.requestWriteSelectionToDevice("local_file", PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator { }
|
MenuSeparator { }
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
id: reloadAllMenu
|
id: reloadAllMenu
|
||||||
action: Cura.Actions.reloadAll
|
action: Cura.Actions.reloadAll
|
||||||
@ -98,5 +101,5 @@ Menu
|
|||||||
|
|
||||||
MenuSeparator { }
|
MenuSeparator { }
|
||||||
|
|
||||||
MenuItem { action: Cura.Actions.quit }
|
UM.MenuItem { action: Cura.Actions.quit }
|
||||||
}
|
}
|
||||||
|
23
resources/qml/Menus/HelpMenu.qml
Normal file
23
resources/qml/Menus/HelpMenu.qml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// 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.0 as Cura
|
||||||
|
|
||||||
|
|
||||||
|
Menu
|
||||||
|
{
|
||||||
|
id: helpMenu
|
||||||
|
title: catalog.i18nc("@title:menu menubar:toplevel", "&Help")
|
||||||
|
|
||||||
|
UM.MenuItem { action: Cura.Actions.showProfileFolder }
|
||||||
|
UM.MenuItem { action: Cura.Actions.showTroubleshooting}
|
||||||
|
UM.MenuItem { action: Cura.Actions.documentation }
|
||||||
|
UM.MenuItem { action: Cura.Actions.reportBug }
|
||||||
|
MenuSeparator { }
|
||||||
|
UM.MenuItem { action: Cura.Actions.whatsNew }
|
||||||
|
UM.MenuItem { action: Cura.Actions.about }
|
||||||
|
}
|
@ -1,25 +0,0 @@
|
|||||||
// Copyright (c) 2018 Ultimaker B.V.
|
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
|
||||||
|
|
||||||
import QtQuick 2.2
|
|
||||||
import QtQuick.Controls 1.4
|
|
||||||
|
|
||||||
import UM 1.2 as UM
|
|
||||||
import Cura 1.0 as Cura
|
|
||||||
|
|
||||||
Instantiator
|
|
||||||
{
|
|
||||||
model: Cura.GlobalStacksModel {}
|
|
||||||
|
|
||||||
MenuItem
|
|
||||||
{
|
|
||||||
text: model.name
|
|
||||||
checkable: true
|
|
||||||
checked: Cura.MachineManager.activeMachine !== null ? Cura.MachineManager.activeMachine.id == model.id: false
|
|
||||||
exclusiveGroup: group
|
|
||||||
visible: !model.hasRemoteConnection
|
|
||||||
onTriggered: Cura.MachineManager.setActiveMachine(model.id)
|
|
||||||
}
|
|
||||||
onObjectAdded: menu.insertItem(index, object)
|
|
||||||
onObjectRemoved: menu.removeItem(object)
|
|
||||||
}
|
|
@ -1,15 +1,15 @@
|
|||||||
//Copyright (c) 2020 Ultimaker B.V.
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
//Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.7
|
import QtQuick 2.7
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 2.4
|
||||||
|
|
||||||
import UM 1.2 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Menu
|
UM.Menu
|
||||||
{
|
{
|
||||||
id: menu
|
id: materialMenu
|
||||||
title: catalog.i18nc("@label:category menu label", "Material")
|
title: catalog.i18nc("@label:category menu label", "Material")
|
||||||
|
|
||||||
property int extruderIndex: 0
|
property int extruderIndex: 0
|
||||||
@ -25,50 +25,50 @@ Menu
|
|||||||
}
|
}
|
||||||
property bool isActiveExtruderEnabled: (activeExtruder === null || activeExtruder === undefined) ? false : activeExtruder.isEnabled
|
property bool isActiveExtruderEnabled: (activeExtruder === null || activeExtruder === undefined) ? false : activeExtruder.isEnabled
|
||||||
|
|
||||||
property string activeMaterialId: (activeExtruder === null || activeExtruder === undefined) ? false : activeExtruder.material.id
|
property string activeMaterialId: (activeExtruder === null || activeExtruder === undefined) ? "" : activeExtruder.material.id
|
||||||
|
|
||||||
property bool updateModels: true
|
property bool updateModels: true
|
||||||
Cura.FavoriteMaterialsModel
|
Cura.FavoriteMaterialsModel
|
||||||
{
|
{
|
||||||
id: favoriteMaterialsModel
|
id: favoriteMaterialsModel
|
||||||
extruderPosition: menu.extruderIndex
|
extruderPosition: materialMenu.extruderIndex
|
||||||
enabled: updateModels
|
enabled: updateModels
|
||||||
}
|
}
|
||||||
|
|
||||||
Cura.GenericMaterialsModel
|
Cura.GenericMaterialsModel
|
||||||
{
|
{
|
||||||
id: genericMaterialsModel
|
id: genericMaterialsModel
|
||||||
extruderPosition: menu.extruderIndex
|
extruderPosition: materialMenu.extruderIndex
|
||||||
enabled: updateModels
|
enabled: updateModels
|
||||||
}
|
}
|
||||||
|
|
||||||
Cura.MaterialBrandsModel
|
Cura.MaterialBrandsModel
|
||||||
{
|
{
|
||||||
id: brandModel
|
id: brandModel
|
||||||
extruderPosition: menu.extruderIndex
|
extruderPosition: materialMenu.extruderIndex
|
||||||
enabled: updateModels
|
enabled: updateModels
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@label:category menu label", "Favorites")
|
text: catalog.i18nc("@label:category menu label", "Favorites")
|
||||||
enabled: false
|
enabled: false
|
||||||
visible: favoriteMaterialsModel.items.length > 0
|
visible: favoriteMaterialsModel.items.length > 0
|
||||||
|
height: visible ? implicitHeight: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
model: favoriteMaterialsModel
|
model: favoriteMaterialsModel
|
||||||
delegate: MenuItem
|
delegate: UM.MenuItem
|
||||||
{
|
{
|
||||||
text: model.brand + " " + model.name
|
text: model.brand + " " + model.name
|
||||||
checkable: true
|
checkable: true
|
||||||
enabled: isActiveExtruderEnabled
|
enabled: isActiveExtruderEnabled
|
||||||
checked: model.root_material_id === menu.currentRootMaterialId
|
checked: model.root_material_id === materialMenu.currentRootMaterialId
|
||||||
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
||||||
exclusiveGroup: favoriteGroup // One favorite and one item from the others can be active at the same time.
|
|
||||||
}
|
}
|
||||||
onObjectAdded: menu.insertItem(index, object)
|
onObjectAdded: materialMenu.insertItem(index, object)
|
||||||
onObjectRemoved: menu.removeItem(index)
|
onObjectRemoved: materialMenu.removeItem(index)
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator {}
|
MenuSeparator {}
|
||||||
@ -81,13 +81,12 @@ Menu
|
|||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
model: genericMaterialsModel
|
model: genericMaterialsModel
|
||||||
delegate: MenuItem
|
delegate: UM.MenuItem
|
||||||
{
|
{
|
||||||
text: model.name
|
text: model.name
|
||||||
checkable: true
|
checkable: true
|
||||||
enabled: isActiveExtruderEnabled
|
enabled: isActiveExtruderEnabled
|
||||||
checked: model.root_material_id === menu.currentRootMaterialId
|
checked: model.root_material_id === materialMenu.currentRootMaterialId
|
||||||
exclusiveGroup: group
|
|
||||||
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
||||||
}
|
}
|
||||||
onObjectAdded: genericMenu.insertItem(index, object)
|
onObjectAdded: genericMenu.insertItem(index, object)
|
||||||
@ -100,7 +99,7 @@ Menu
|
|||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
model: brandModel
|
model: brandModel
|
||||||
Menu
|
UM.Menu
|
||||||
{
|
{
|
||||||
id: brandMenu
|
id: brandMenu
|
||||||
title: brandName
|
title: brandName
|
||||||
@ -120,47 +119,37 @@ Menu
|
|||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
model: brandMaterialColors
|
model: brandMaterialColors
|
||||||
delegate: MenuItem
|
delegate: UM.MenuItem
|
||||||
{
|
{
|
||||||
text: model.name
|
text: model.name
|
||||||
checkable: true
|
checkable: true
|
||||||
enabled: isActiveExtruderEnabled
|
enabled: isActiveExtruderEnabled
|
||||||
checked: model.id === menu.activeMaterialId
|
checked: model.id === materialMenu.activeMaterialId
|
||||||
exclusiveGroup: group
|
|
||||||
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
onTriggered: Cura.MachineManager.setMaterial(extruderIndex, model.container_node)
|
||||||
}
|
}
|
||||||
onObjectAdded: brandMaterialsMenu.insertItem(index, object)
|
onObjectAdded: brandMaterialsMenu.insertItem(index, object)
|
||||||
onObjectRemoved: brandMaterialsMenu.removeItem(object)
|
onObjectRemoved: brandMaterialsMenu.removeItem(object)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onObjectAdded: brandMenu.insertItem(index, object)
|
onObjectAdded: brandMenu.insertMenu(index, object)
|
||||||
onObjectRemoved: brandMenu.removeItem(object)
|
onObjectRemoved: brandMenu.removeMenu(object)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
onObjectAdded: menu.insertItem(index, object)
|
onObjectAdded: materialMenu.insertMenu(index, object)
|
||||||
onObjectRemoved: menu.removeItem(object)
|
onObjectRemoved: materialMenu.removeMenu(object)
|
||||||
}
|
|
||||||
|
|
||||||
ExclusiveGroup
|
|
||||||
{
|
|
||||||
id: group
|
|
||||||
}
|
|
||||||
|
|
||||||
ExclusiveGroup
|
|
||||||
{
|
|
||||||
id: favoriteGroup
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator {}
|
MenuSeparator {}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
action: Cura.Actions.manageMaterials
|
action: Cura.Actions.manageMaterials
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator {}
|
MenuSeparator {}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
action: Cura.Actions.marketplaceMaterials
|
action: Cura.Actions.marketplaceMaterials
|
||||||
}
|
}
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
// Copyright (c) 2018 Ultimaker B.V.
|
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
|
||||||
|
|
||||||
import QtQuick 2.2
|
|
||||||
import QtQuick.Controls 1.4
|
|
||||||
|
|
||||||
import UM 1.2 as UM
|
|
||||||
import Cura 1.0 as Cura
|
|
||||||
|
|
||||||
Instantiator
|
|
||||||
{
|
|
||||||
model: Cura.GlobalStacksModel {}
|
|
||||||
MenuItem
|
|
||||||
{
|
|
||||||
property string connectGroupName:
|
|
||||||
{
|
|
||||||
if("group_name" in model.metadata)
|
|
||||||
{
|
|
||||||
return model.metadata["group_name"]
|
|
||||||
}
|
|
||||||
return ""
|
|
||||||
}
|
|
||||||
text: connectGroupName
|
|
||||||
checkable: true
|
|
||||||
visible: model.hasRemoteConnection
|
|
||||||
checked: Cura.MachineManager.activeMachineNetworkGroupName == connectGroupName
|
|
||||||
exclusiveGroup: group
|
|
||||||
onTriggered: Cura.MachineManager.setActiveMachine(model.id)
|
|
||||||
}
|
|
||||||
onObjectAdded: menu.insertItem(index, object)
|
|
||||||
onObjectRemoved: menu.removeItem(object)
|
|
||||||
}
|
|
@ -1,15 +1,15 @@
|
|||||||
// Copyright (c) 2017 Ultimaker B.V.
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.10
|
import QtQuick 2.10
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 2.4
|
||||||
|
|
||||||
import UM 1.2 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Menu
|
UM.Menu
|
||||||
{
|
{
|
||||||
id: menu
|
id: nozzleMenu
|
||||||
title: "Nozzle"
|
title: "Nozzle"
|
||||||
|
|
||||||
property int extruderIndex: 0
|
property int extruderIndex: 0
|
||||||
@ -23,38 +23,34 @@ Menu
|
|||||||
{
|
{
|
||||||
model: nozzleModel
|
model: nozzleModel
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text: model.hotend_name
|
text: model.hotend_name
|
||||||
checkable: true
|
checkable: true
|
||||||
checked: {
|
property var activeMachine: Cura.MachineManager.activeMachine
|
||||||
var activeMachine = Cura.MachineManager.activeMachine
|
checked:
|
||||||
|
{
|
||||||
if (activeMachine === null)
|
if (activeMachine === null)
|
||||||
{
|
{
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
var extruder = Cura.MachineManager.activeMachine.extruderList[extruderIndex]
|
var extruder = activeMachine.extruderList[extruderIndex]
|
||||||
return (extruder === undefined) ? false : (extruder.variant.name == model.hotend_name)
|
return (extruder === undefined) ? false : (extruder.variant.name == model.hotend_name)
|
||||||
}
|
}
|
||||||
exclusiveGroup: group
|
|
||||||
enabled:
|
enabled:
|
||||||
{
|
{
|
||||||
var activeMachine = Cura.MachineManager.activeMachine
|
|
||||||
if (activeMachine === null)
|
if (activeMachine === null)
|
||||||
{
|
{
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
var extruder = Cura.MachineManager.activeMachine.extruderList[extruderIndex]
|
var extruder = activeMachine.extruderList[extruderIndex]
|
||||||
return (extruder === undefined) ? false : extruder.isEnabled
|
return (extruder === undefined) ? false : extruder.isEnabled
|
||||||
}
|
}
|
||||||
onTriggered: {
|
onTriggered: Cura.MachineManager.setVariant(nozzleMenu.extruderIndex, model.container_node)
|
||||||
Cura.MachineManager.setVariant(menu.extruderIndex, model.container_node);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
onObjectAdded: menu.insertItem(index, object);
|
onObjectAdded: nozzleMenu.insertItem(index, object)
|
||||||
onObjectRemoved: menu.removeItem(object);
|
onObjectRemoved: nozzleMenu.removeItem(object)
|
||||||
}
|
}
|
||||||
|
|
||||||
ExclusiveGroup { id: group }
|
|
||||||
}
|
}
|
||||||
|
@ -1,25 +1,24 @@
|
|||||||
// Copyright (c) 2020 Ultimaker B.V.
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.1
|
||||||
|
|
||||||
import UM 1.6 as UM
|
import UM 1.6 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
import "../Dialogs"
|
import "../Dialogs"
|
||||||
|
|
||||||
Menu
|
UM.Menu
|
||||||
{
|
{
|
||||||
id: openFilesMenu
|
id: openFilesMenu
|
||||||
title: catalog.i18nc("@title:menu menubar:file", "Open File(s)...")
|
title: catalog.i18nc("@title:menu menubar:file", "Open File(s)...")
|
||||||
iconName: "document-open-recent";
|
|
||||||
|
|
||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
id: fileProviders
|
id: fileProviders
|
||||||
model: CuraApplication.getFileProviderModel()
|
model: CuraApplication.getFileProviderModel()
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text:
|
text:
|
||||||
{
|
{
|
||||||
@ -39,6 +38,7 @@ Menu
|
|||||||
// Unassign the shortcuts when the submenu is invisible (i.e. when there is only one file provider) to avoid ambiguous shortcuts.
|
// Unassign the shortcuts when the submenu is invisible (i.e. when there is only one file provider) to avoid ambiguous shortcuts.
|
||||||
// When there is a single file provider, the openAction is assigned with the Ctrl+O shortcut instead.
|
// When there is a single file provider, the openAction is assigned with the Ctrl+O shortcut instead.
|
||||||
shortcut: openFilesMenu.visible ? model.shortcut : ""
|
shortcut: openFilesMenu.visible ? model.shortcut : ""
|
||||||
|
visible: openFilesMenu.visible
|
||||||
}
|
}
|
||||||
onObjectAdded: openFilesMenu.insertItem(index, object)
|
onObjectAdded: openFilesMenu.insertItem(index, object)
|
||||||
onObjectRemoved: openFilesMenu.removeItem(object)
|
onObjectRemoved: openFilesMenu.removeItem(object)
|
||||||
|
25
resources/qml/Menus/PreferencesMenu.qml
Normal file
25
resources/qml/Menus/PreferencesMenu.qml
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// 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.0 as Cura
|
||||||
|
|
||||||
|
Menu
|
||||||
|
{
|
||||||
|
id: preferencesMenu
|
||||||
|
|
||||||
|
//On MacOS, don't translate the "Preferences" word.
|
||||||
|
//Qt moves the "preferences" 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") ? "&Preferences" : catalog.i18nc("@title:menu menubar:toplevel", "P&references")
|
||||||
|
|
||||||
|
UM.MenuItem { action: Cura.Actions.preferences }
|
||||||
|
}
|
||||||
|
|
@ -1,60 +1,84 @@
|
|||||||
// Copyright (c) 2018 Ultimaker B.V.
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 2.4
|
||||||
|
|
||||||
import UM 1.2 as UM
|
import UM 1.6 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Menu
|
Menu
|
||||||
{
|
{
|
||||||
id: menu
|
id: menu
|
||||||
// TODO Enable custom style to the menu
|
|
||||||
// style: MenuStyle
|
|
||||||
// {
|
|
||||||
// frame: Rectangle
|
|
||||||
// {
|
|
||||||
// color: "white"
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
|
id: networkEnabledPrinterItem
|
||||||
text: catalog.i18nc("@label:category menu label", "Network enabled printers")
|
text: catalog.i18nc("@label:category menu label", "Network enabled printers")
|
||||||
enabled: false
|
enabled: false
|
||||||
visible: networkPrinterMenu.count > 0
|
visible: networKPrinterInstantiator.count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
NetworkPrinterMenu
|
Instantiator
|
||||||
{
|
{
|
||||||
id: networkPrinterMenu
|
id: networKPrinterInstantiator
|
||||||
|
model: Cura.GlobalStacksModel {filterOnlineOnly: true}
|
||||||
|
UM.MenuItem
|
||||||
|
{
|
||||||
|
property string connectGroupName:
|
||||||
|
{
|
||||||
|
if("group_name" in model.metadata)
|
||||||
|
{
|
||||||
|
return model.metadata["group_name"]
|
||||||
|
}
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
text: connectGroupName
|
||||||
|
checkable: true
|
||||||
|
checked: Cura.MachineManager.activeMachineNetworkGroupName == connectGroupName
|
||||||
|
onTriggered: Cura.MachineManager.setActiveMachine(model.id)
|
||||||
|
}
|
||||||
|
onObjectAdded: menu.insertItem(2, object)
|
||||||
|
onObjectRemoved: menu.removeItem(object)
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator
|
MenuSeparator
|
||||||
{
|
{
|
||||||
visible: networkPrinterMenu.count > 0
|
visible: networKPrinterInstantiator.count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
|
||||||
text: catalog.i18nc("@label:category menu label", "Local printers")
|
|
||||||
enabled: false
|
|
||||||
visible: localPrinterMenu.count > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
LocalPrinterMenu
|
|
||||||
{
|
{
|
||||||
id: localPrinterMenu
|
id: localPrinterMenu
|
||||||
|
text: catalog.i18nc("@label:category menu label", "Local printers")
|
||||||
|
enabled: false
|
||||||
|
visible: localPrinterInstantiator.count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
ExclusiveGroup { id: group; }
|
Instantiator
|
||||||
|
{
|
||||||
|
id: localPrinterInstantiator
|
||||||
|
model: Cura.GlobalStacksModel {}
|
||||||
|
|
||||||
|
UM.MenuItem
|
||||||
|
{
|
||||||
|
text: model.name
|
||||||
|
checkable: true
|
||||||
|
checked: Cura.MachineManager.activeMachine !== null ? Cura.MachineManager.activeMachine.id == model.id: false
|
||||||
|
visible: !model.hasRemoteConnection
|
||||||
|
height: visible ? implicitHeight: 0
|
||||||
|
onTriggered: Cura.MachineManager.setActiveMachine(model.id)
|
||||||
|
}
|
||||||
|
// A bit hackish, but we have 2 items at the end, put them before that
|
||||||
|
onObjectAdded: menu.insertItem(menu.count - 2, object)
|
||||||
|
onObjectRemoved: menu.removeItem(object)
|
||||||
|
}
|
||||||
|
|
||||||
MenuSeparator
|
MenuSeparator
|
||||||
{
|
{
|
||||||
visible: localPrinterMenu.count > 0
|
visible: localPrinterInstantiator.count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem { action: Cura.Actions.addMachine; }
|
UM.MenuItem { action: Cura.Actions.addMachine }
|
||||||
MenuItem { action: Cura.Actions.configureMachines; }
|
UM.MenuItem { action: Cura.Actions.configureMachines }
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.7
|
import QtQuick 2.7
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 2.4
|
||||||
|
|
||||||
import UM 1.3 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Menu
|
Menu
|
||||||
@ -18,12 +18,11 @@ Menu
|
|||||||
id: printerTypeInstantiator
|
id: printerTypeInstantiator
|
||||||
model: outputDevice != null ? outputDevice.connectedPrintersTypeCount : []
|
model: outputDevice != null ? outputDevice.connectedPrintersTypeCount : []
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text: modelData.machine_type
|
text: modelData.machine_type
|
||||||
checkable: true
|
checkable: true
|
||||||
checked: Cura.MachineManager.activeMachine.definition.name == modelData.machine_type
|
checked: Cura.MachineManager.activeMachine.definition.name == modelData.machine_type
|
||||||
exclusiveGroup: group
|
|
||||||
onTriggered:
|
onTriggered:
|
||||||
{
|
{
|
||||||
Cura.MachineManager.switchPrinterType(modelData.machine_type)
|
Cura.MachineManager.switchPrinterType(modelData.machine_type)
|
||||||
@ -32,6 +31,4 @@ Menu
|
|||||||
onObjectAdded: menu.insertItem(index, object)
|
onObjectAdded: menu.insertItem(index, object)
|
||||||
onObjectRemoved: menu.removeItem(object)
|
onObjectRemoved: menu.removeItem(object)
|
||||||
}
|
}
|
||||||
|
|
||||||
ExclusiveGroup { id: group }
|
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
// Copyright (c) 2021 Ultimaker B.V.
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.1
|
||||||
|
|
||||||
import UM 1.3 as UM
|
import UM 1.3 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
@ -13,7 +13,7 @@ Menu
|
|||||||
{
|
{
|
||||||
id: menu
|
id: menu
|
||||||
title: catalog.i18nc("@title:menu menubar:file", "Open &Recent")
|
title: catalog.i18nc("@title:menu menubar:file", "Open &Recent")
|
||||||
iconName: "document-open-recent";
|
//iconName: "document-open-recent";
|
||||||
|
|
||||||
enabled: CuraApplication.recentFiles.length > 0;
|
enabled: CuraApplication.recentFiles.length > 0;
|
||||||
|
|
||||||
|
@ -1,15 +1,15 @@
|
|||||||
// Copyright (c) 2021 Ultimaker B.V.
|
// Copyright (c) 2022 Ultimaker B.V.
|
||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.1
|
||||||
|
|
||||||
import UM 1.6 as UM
|
import UM 1.6 as UM
|
||||||
import Cura 1.1 as Cura
|
import Cura 1.1 as Cura
|
||||||
|
|
||||||
import "../Dialogs"
|
import "../Dialogs"
|
||||||
|
|
||||||
Menu
|
UM.Menu
|
||||||
{
|
{
|
||||||
id: saveProjectMenu
|
id: saveProjectMenu
|
||||||
title: catalog.i18nc("@title:menu menubar:file", "Save Project...")
|
title: catalog.i18nc("@title:menu menubar:file", "Save Project...")
|
||||||
@ -18,7 +18,7 @@ Menu
|
|||||||
Instantiator
|
Instantiator
|
||||||
{
|
{
|
||||||
id: projectOutputDevices
|
id: projectOutputDevices
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text: model.name
|
text: model.name
|
||||||
onTriggered:
|
onTriggered:
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
//Cura is released under the terms of the LGPLv3 or higher.
|
//Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.4
|
import QtQuick.Controls 2.4
|
||||||
|
|
||||||
import UM 1.2 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Menu
|
Menu
|
||||||
@ -23,11 +23,16 @@ Menu
|
|||||||
{
|
{
|
||||||
title: modelData.name
|
title: modelData.name
|
||||||
property var extruder: (base.activeMachine === null) ? null : activeMachine.extruderList[model.index]
|
property var extruder: (base.activeMachine === null) ? null : activeMachine.extruderList[model.index]
|
||||||
NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.activeMachine.hasVariants; extruderIndex: index }
|
NozzleMenu
|
||||||
|
{
|
||||||
|
title: Cura.MachineManager.activeDefinitionVariantsName
|
||||||
|
shouldBeVisible: activeMachine.hasVariants
|
||||||
|
extruderIndex: index
|
||||||
|
}
|
||||||
MaterialMenu
|
MaterialMenu
|
||||||
{
|
{
|
||||||
title: catalog.i18nc("@title:menu", "&Material")
|
title: catalog.i18nc("@title:menu", "&Material")
|
||||||
visible: Cura.MachineManager.activeMachine.hasMaterials
|
shouldBeVisible: activeMachine.hasMaterials
|
||||||
extruderIndex: index
|
extruderIndex: index
|
||||||
updateModels: false
|
updateModels: false
|
||||||
onAboutToShow: updateModels = true
|
onAboutToShow: updateModels = true
|
||||||
@ -39,33 +44,34 @@ Menu
|
|||||||
visible: Cura.MachineManager.activeMachine.hasVariants || Cura.MachineManager.activeMachine.hasMaterials
|
visible: Cura.MachineManager.activeMachine.hasVariants || Cura.MachineManager.activeMachine.hasMaterials
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:inmenu", "Set as Active Extruder")
|
text: catalog.i18nc("@action:inmenu", "Set as Active Extruder")
|
||||||
onTriggered: Cura.ExtruderManager.setActiveExtruderIndex(model.index)
|
onTriggered: Cura.ExtruderManager.setActiveExtruderIndex(model.index)
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:inmenu", "Enable Extruder")
|
text: catalog.i18nc("@action:inmenu", "Enable Extruder")
|
||||||
onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true)
|
onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true)
|
||||||
visible: (extruder === null || extruder === undefined) ? false : !extruder.isEnabled
|
visible: (extruder === null || extruder === undefined) ? false : !extruder.isEnabled
|
||||||
|
height: visible ? implicitHeight: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:inmenu", "Disable Extruder")
|
text: catalog.i18nc("@action:inmenu", "Disable Extruder")
|
||||||
onTriggered: Cura.MachineManager.setExtruderEnabled(index, false)
|
onTriggered: Cura.MachineManager.setExtruderEnabled(index, false)
|
||||||
visible: (extruder === null || extruder === undefined) ? false : extruder.isEnabled
|
visible: (extruder === null || extruder === undefined) ? false : extruder.isEnabled
|
||||||
enabled: Cura.MachineManager.numberExtrudersEnabled > 1
|
enabled: Cura.MachineManager.numberExtrudersEnabled > 1
|
||||||
|
height: visible ? implicitHeight: 0
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
onObjectAdded: base.insertItem(index, object)
|
onObjectAdded: base.insertMenu(index, object)
|
||||||
onObjectRemoved: base.removeItem(object)
|
onObjectRemoved: base.removeMenu(object)
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator { }
|
MenuSeparator { }
|
||||||
|
|
||||||
MenuItem { action: Cura.Actions.configureSettingVisibility }
|
UM.MenuItem { action: Cura.Actions.configureSettingVisibility }
|
||||||
}
|
}
|
@ -2,33 +2,34 @@
|
|||||||
// Cura is released under the terms of the LGPLv3 or higher.
|
// Cura is released under the terms of the LGPLv3 or higher.
|
||||||
|
|
||||||
import QtQuick 2.2
|
import QtQuick 2.2
|
||||||
import QtQuick.Controls 1.1
|
import QtQuick.Controls 2.1
|
||||||
|
|
||||||
import UM 1.2 as UM
|
import UM 1.5 as UM
|
||||||
import Cura 1.0 as Cura
|
import Cura 1.0 as Cura
|
||||||
|
|
||||||
Menu
|
Menu
|
||||||
{
|
{
|
||||||
title: catalog.i18nc("@title:menu menubar:toplevel", "&View")
|
|
||||||
id: base
|
id: base
|
||||||
|
title: catalog.i18nc("@title:menu menubar:toplevel", "&View")
|
||||||
property var multiBuildPlateModel: CuraApplication.getMultiBuildPlateModel()
|
|
||||||
|
|
||||||
Menu
|
Menu
|
||||||
{
|
{
|
||||||
title: catalog.i18nc("@action:inmenu menubar:view","&Camera position");
|
title: catalog.i18nc("@action:inmenu menubar:view", "&Camera position")
|
||||||
MenuItem { action: Cura.Actions.view3DCamera; }
|
UM.MenuItem { action: Cura.Actions.view3DCamera }
|
||||||
MenuItem { action: Cura.Actions.viewFrontCamera; }
|
UM.MenuItem { action: Cura.Actions.viewFrontCamera }
|
||||||
MenuItem { action: Cura.Actions.viewTopCamera; }
|
UM.MenuItem { action: Cura.Actions.viewTopCamera }
|
||||||
MenuItem { action: Cura.Actions.viewBottomCamera; }
|
UM.MenuItem { action: Cura.Actions.viewBottomCamera }
|
||||||
MenuItem { action: Cura.Actions.viewLeftSideCamera; }
|
UM.MenuItem { action: Cura.Actions.viewLeftSideCamera }
|
||||||
MenuItem { action: Cura.Actions.viewRightSideCamera; }
|
UM.MenuItem { action: Cura.Actions.viewRightSideCamera }
|
||||||
}
|
}
|
||||||
|
|
||||||
Menu
|
Menu
|
||||||
{
|
{
|
||||||
id: cameraViewMenu
|
id: cameraViewMenu
|
||||||
|
|
||||||
|
title: catalog.i18nc("@action:inmenu menubar:view", "Camera view")
|
||||||
property string cameraMode: UM.Preferences.getValue("general/camera_perspective_mode")
|
property string cameraMode: UM.Preferences.getValue("general/camera_perspective_mode")
|
||||||
|
|
||||||
Connections
|
Connections
|
||||||
{
|
{
|
||||||
target: UM.Preferences
|
target: UM.Preferences
|
||||||
@ -42,7 +43,6 @@ Menu
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
title: catalog.i18nc("@action:inmenu menubar:view","Camera view")
|
|
||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:inmenu menubar:view", "Perspective")
|
text: catalog.i18nc("@action:inmenu menubar:view", "Perspective")
|
||||||
@ -52,8 +52,8 @@ Menu
|
|||||||
{
|
{
|
||||||
UM.Preferences.setValue("general/camera_perspective_mode", "perspective")
|
UM.Preferences.setValue("general/camera_perspective_mode", "perspective")
|
||||||
}
|
}
|
||||||
exclusiveGroup: group
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem
|
MenuItem
|
||||||
{
|
{
|
||||||
text: catalog.i18nc("@action:inmenu menubar:view", "Orthographic")
|
text: catalog.i18nc("@action:inmenu menubar:view", "Orthographic")
|
||||||
@ -63,45 +63,12 @@ Menu
|
|||||||
{
|
{
|
||||||
UM.Preferences.setValue("general/camera_perspective_mode", "orthographic")
|
UM.Preferences.setValue("general/camera_perspective_mode", "orthographic")
|
||||||
}
|
}
|
||||||
exclusiveGroup: group
|
|
||||||
}
|
|
||||||
ExclusiveGroup { id: group }
|
|
||||||
}
|
|
||||||
|
|
||||||
MenuSeparator
|
|
||||||
{
|
|
||||||
visible: UM.Preferences.getValue("cura/use_multi_build_plate")
|
|
||||||
}
|
|
||||||
|
|
||||||
Menu
|
|
||||||
{
|
|
||||||
id: buildPlateMenu;
|
|
||||||
title: catalog.i18nc("@action:inmenu menubar:view","&Build plate")
|
|
||||||
visible: UM.Preferences.getValue("cura/use_multi_build_plate")
|
|
||||||
Instantiator
|
|
||||||
{
|
|
||||||
model: base.multiBuildPlateModel
|
|
||||||
MenuItem
|
|
||||||
{
|
|
||||||
text: base.multiBuildPlateModel.getItem(index).name;
|
|
||||||
onTriggered: Cura.SceneController.setActiveBuildPlate(base.multiBuildPlateModel.getItem(index).buildPlateNumber)
|
|
||||||
checkable: true
|
|
||||||
checked: base.multiBuildPlateModel.getItem(index).buildPlateNumber == base.multiBuildPlateModel.activeBuildPlate
|
|
||||||
exclusiveGroup: buildPlateGroup
|
|
||||||
visible: UM.Preferences.getValue("cura/use_multi_build_plate")
|
|
||||||
}
|
|
||||||
onObjectAdded: buildPlateMenu.insertItem(index, object)
|
|
||||||
onObjectRemoved: buildPlateMenu.removeItem(object)
|
|
||||||
}
|
|
||||||
ExclusiveGroup
|
|
||||||
{
|
|
||||||
id: buildPlateGroup
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuSeparator {}
|
MenuSeparator {}
|
||||||
|
|
||||||
MenuItem
|
UM.MenuItem
|
||||||
{
|
{
|
||||||
action: Cura.Actions.toggleFullScreen
|
action: Cura.Actions.toggleFullScreen
|
||||||
}
|
}
|
||||||
|
@ -15,6 +15,7 @@ MenuItem
|
|||||||
|
|
||||||
implicitHeight: UM.Theme.getSize("setting_control").height + UM.Theme.getSize("narrow_margin").height
|
implicitHeight: UM.Theme.getSize("setting_control").height + UM.Theme.getSize("narrow_margin").height
|
||||||
opacity: enabled ? 1.0 : 0.5
|
opacity: enabled ? 1.0 : 0.5
|
||||||
|
height: visible ? implicitHeight : 0
|
||||||
|
|
||||||
arrow: UM.RecolorImage
|
arrow: UM.RecolorImage
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user