Switch out the file, view and edit menu for controls 2

CURA-8683
This commit is contained in:
Jaime van Kessel 2022-01-10 16:55:28 +01:00
parent 58a3aef8d4
commit 052898ce21
9 changed files with 285 additions and 251 deletions

View 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 }
}

View file

@ -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.
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls 2.1
import UM 1.6 as UM
import Cura 1.0 as Cura
@ -13,31 +13,34 @@ Menu
title: catalog.i18nc("@title:menu menubar:toplevel", "&File")
property var fileProviderModel: CuraApplication.getFileProviderModel()
MenuItem
UM.MenuItem
{
id: newProjectMenu
action: Cura.Actions.newProject
}
MenuItem
UM.MenuItem
{
id: openMenu
action: Cura.Actions.open
visible: (base.fileProviderModel.count == 1)
visible: base.fileProviderModel.count == 1
height: visible ? implicitHeight: 0
}
OpenFilesMenu
{
id: openFilesMenu
visible: (base.fileProviderModel.count > 1)
shouldBeVisible: base.fileProviderModel.count > 1
}
RecentFilesMenu { }
MenuItem
UM.MenuItem
{
id: saveWorkspaceMenu
shortcut: visible ? StandardKey.Save : ""
shortcut: StandardKey.Save
text: catalog.i18nc("@title:menu menubar:file", "&Save Project...")
visible: saveProjectMenu.model.count == 1
enabled: UM.WorkspaceFileHandler.enabled
@ -62,13 +65,13 @@ Menu
{
id: saveProjectMenu
model: projectOutputDevicesModel
visible: model.count > 1
shouldBeVisible: model.count > 1
enabled: UM.WorkspaceFileHandler.enabled
}
MenuSeparator { }
MenuItem
UM.MenuItem
{
id: saveAsMenu
text: catalog.i18nc("@title:menu menubar:file", "&Export...")
@ -79,18 +82,18 @@ Menu
}
}
MenuItem
UM.MenuItem
{
id: exportSelectionMenu
text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
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"})
}
MenuSeparator { }
MenuItem
UM.MenuItem
{
id: reloadAllMenu
action: Cura.Actions.reloadAll
@ -98,5 +101,5 @@ Menu
MenuSeparator { }
MenuItem { action: Cura.Actions.quit }
UM.MenuItem { action: Cura.Actions.quit }
}

View file

@ -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.
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls 2.1
import UM 1.6 as UM
import Cura 1.0 as Cura
import "../Dialogs"
Menu
UM.Menu
{
id: openFilesMenu
title: catalog.i18nc("@title:menu menubar:file", "Open File(s)...")
iconName: "document-open-recent";
Instantiator
{
id: fileProviders
model: CuraApplication.getFileProviderModel()
MenuItem
UM.MenuItem
{
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.
// When there is a single file provider, the openAction is assigned with the Ctrl+O shortcut instead.
shortcut: openFilesMenu.visible ? model.shortcut : ""
visible: openFilesMenu.visible
}
onObjectAdded: openFilesMenu.insertItem(index, object)
onObjectRemoved: openFilesMenu.removeItem(object)

View file

@ -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.
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls 2.1
import UM 1.3 as UM
import Cura 1.0 as Cura
@ -13,7 +13,7 @@ Menu
{
id: menu
title: catalog.i18nc("@title:menu menubar:file", "Open &Recent")
iconName: "document-open-recent";
//iconName: "document-open-recent";
enabled: CuraApplication.recentFiles.length > 0;

View file

@ -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.
import QtQuick 2.2
import QtQuick.Controls 1.1
import QtQuick.Controls 2.1
import UM 1.6 as UM
import Cura 1.1 as Cura
import "../Dialogs"
Menu
UM.Menu
{
id: saveProjectMenu
title: catalog.i18nc("@title:menu menubar:file", "Save Project...")
@ -18,7 +18,7 @@ Menu
Instantiator
{
id: projectOutputDevices
MenuItem
UM.MenuItem
{
text: model.name
onTriggered:

View file

@ -2,33 +2,34 @@
// Cura is released under the terms of the LGPLv3 or higher.
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
Menu
{
title: catalog.i18nc("@title:menu menubar:toplevel", "&View")
id: base
property var multiBuildPlateModel: CuraApplication.getMultiBuildPlateModel()
title: catalog.i18nc("@title:menu menubar:toplevel", "&View")
Menu
{
title: catalog.i18nc("@action:inmenu menubar:view","&Camera position");
MenuItem { action: Cura.Actions.view3DCamera; }
MenuItem { action: Cura.Actions.viewFrontCamera; }
MenuItem { action: Cura.Actions.viewTopCamera; }
MenuItem { action: Cura.Actions.viewBottomCamera; }
MenuItem { action: Cura.Actions.viewLeftSideCamera; }
MenuItem { action: Cura.Actions.viewRightSideCamera; }
title: catalog.i18nc("@action:inmenu menubar:view", "&Camera position")
UM.MenuItem { action: Cura.Actions.view3DCamera }
UM.MenuItem { action: Cura.Actions.viewFrontCamera }
UM.MenuItem { action: Cura.Actions.viewTopCamera }
UM.MenuItem { action: Cura.Actions.viewBottomCamera }
UM.MenuItem { action: Cura.Actions.viewLeftSideCamera }
UM.MenuItem { action: Cura.Actions.viewRightSideCamera }
}
Menu
{
id: cameraViewMenu
title: catalog.i18nc("@action:inmenu menubar:view","Camera view")
property string cameraMode: UM.Preferences.getValue("general/camera_perspective_mode")
Connections
{
target: UM.Preferences
@ -42,7 +43,6 @@ Menu
}
}
title: catalog.i18nc("@action:inmenu menubar:view","Camera view")
MenuItem
{
text: catalog.i18nc("@action:inmenu menubar:view", "Perspective")
@ -52,8 +52,9 @@ Menu
{
UM.Preferences.setValue("general/camera_perspective_mode", "perspective")
}
exclusiveGroup: group
//exclusiveGroup: group
}
MenuItem
{
text: catalog.i18nc("@action:inmenu menubar:view", "Orthographic")
@ -63,45 +64,14 @@ Menu
{
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
//exclusiveGroup: group
}
//ExclusiveGroup { id: group }
}
MenuSeparator {}
MenuItem
UM.MenuItem
{
action: Cura.Actions.toggleFullScreen
}