Change Skeleton folder name to MainWindow.

This folder is intended to store the files that construct the main
window. All the parts. The rest of the components are stored in more
specific folders.

Contributes to CURA-5784.
This commit is contained in:
Diego Prado Gesto 2018-10-17 16:13:43 +02:00
parent b670cd82c4
commit 7fb72a1a58
3 changed files with 1 additions and 1 deletions

View file

@ -0,0 +1,298 @@
// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.4
import QtQuick.Layouts 1.1
import QtQuick.Dialogs 1.2
import UM 1.3 as UM
import Cura 1.1 as Cura
import "../Menus"
import "../Dialogs"
Item
{
id: menu
width: applicationMenu.width
height: applicationMenu.height
property alias window: applicationMenu.window
UM.ApplicationMenu
{
id: applicationMenu
Menu
{
id: fileMenu
title: catalog.i18nc("@title:menu menubar:toplevel", "&File")
MenuItem
{
id: newProjectMenu
action: Cura.Actions.newProject
}
MenuItem
{
id: openMenu
action: Cura.Actions.open
}
RecentFilesMenu { }
MenuItem
{
id: saveWorkspaceMenu
text: catalog.i18nc("@title:menu menubar:file", "&Save...")
onTriggered:
{
var args = { "filter_by_machine": false, "file_type": "workspace", "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml" };
if(UM.Preferences.getValue("cura/dialog_on_project_save"))
{
saveWorkspaceDialog.args = args
saveWorkspaceDialog.open()
}
else
{
UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args)
}
}
}
MenuSeparator { }
MenuItem
{
id: saveAsMenu
text: catalog.i18nc("@title:menu menubar:file", "&Export...")
onTriggered:
{
var localDeviceId = "local_file"
UM.OutputDeviceManager.requestWriteToDevice(localDeviceId, PrintInformation.jobName, { "filter_by_machine": false, "preferred_mimetypes": "application/vnd.ms-package.3dmanufacturing-3dmodel+xml"})
}
}
MenuItem
{
id: exportSelectionMenu
text: catalog.i18nc("@action:inmenu menubar:file", "Export Selection...")
enabled: UM.Selection.hasSelection
iconName: "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
{
id: reloadAllMenu
action: Cura.Actions.reloadAll
}
MenuSeparator { }
MenuItem { action: Cura.Actions.quit }
}
Menu
{
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.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", "&View") }
Menu
{
id: settingsMenu
title: catalog.i18nc("@title:menu", "&Settings")
PrinterMenu { title: catalog.i18nc("@title:menu menubar:settings", "&Printer") }
Instantiator
{
model: Cura.ExtrudersModel { simpleNames: true }
Menu {
title: model.name
NozzleMenu { title: Cura.MachineManager.activeDefinitionVariantsName; visible: Cura.MachineManager.hasVariants; extruderIndex: index }
MaterialMenu { title: catalog.i18nc("@title:menu", "&Material"); visible: Cura.MachineManager.hasMaterials; extruderIndex: index }
MenuSeparator
{
visible: Cura.MachineManager.hasVariants || Cura.MachineManager.hasMaterials
}
MenuItem
{
text: catalog.i18nc("@action:inmenu", "Set as Active Extruder")
onTriggered: Cura.MachineManager.setExtruderIndex(model.index)
}
MenuItem
{
text: catalog.i18nc("@action:inmenu", "Enable Extruder")
onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, true)
visible: !Cura.MachineManager.getExtruder(model.index).isEnabled
}
MenuItem
{
text: catalog.i18nc("@action:inmenu", "Disable Extruder")
onTriggered: Cura.MachineManager.setExtruderEnabled(model.index, false)
visible: Cura.MachineManager.getExtruder(model.index).isEnabled
enabled: Cura.MachineManager.numberExtrudersEnabled > 1
}
}
onObjectAdded: settingsMenu.insertItem(index, object)
onObjectRemoved: settingsMenu.removeItem(object)
}
// TODO Only show in dev mode. Remove check when feature ready
BuildplateMenu
{
title: catalog.i18nc("@title:menu", "&Build plate")
visible: CuraSDKVersion == "dev" && Cura.MachineManager.hasVariantBuildplates
}
ProfileMenu { title: catalog.i18nc("@title:settings", "&Profile") }
MenuSeparator { }
MenuItem { action: Cura.Actions.configureSettingVisibility }
}
Menu
{
id: extensionMenu
title: catalog.i18nc("@title:menu menubar:toplevel", "E&xtensions")
Instantiator
{
id: extensions
model: UM.ExtensionModel { }
Menu
{
id: sub_menu
title: model.name;
visible: actions != null
enabled: actions != null
Instantiator
{
model: actions
MenuItem
{
text: model.text
onTriggered: extensions.model.subMenuTriggered(name, model.text)
}
onObjectAdded: sub_menu.insertItem(index, object)
onObjectRemoved: sub_menu.removeItem(object)
}
}
onObjectAdded: extensionMenu.insertItem(index, object)
onObjectRemoved: extensionMenu.removeItem(object)
}
}
Menu
{
id: plugin_menu
title: catalog.i18nc("@title:menu menubar:toplevel", "&Toolbox")
MenuItem { action: Cura.Actions.browsePackages }
}
Menu
{
id: preferencesMenu
title: 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.documentation }
MenuItem { action: Cura.Actions.reportBug }
MenuSeparator { }
MenuItem { action: Cura.Actions.about }
}
}
// ###############################################################################################
// Definition of other components that are linked to the menus
// ###############################################################################################
WorkspaceSummaryDialog
{
id: saveWorkspaceDialog
property var args
onYes: UM.OutputDeviceManager.requestWriteToDevice("local_file", PrintInformation.jobName, args)
}
MessageDialog
{
id: newProjectDialog
modality: Qt.ApplicationModal
title: catalog.i18nc("@title:window", "New project")
text: catalog.i18nc("@info:question", "Are you sure you want to start a new project? This will clear the build plate and any unsaved settings.")
standardButtons: StandardButton.Yes | StandardButton.No
icon: StandardIcon.Question
onYes:
{
CuraApplication.deleteAll();
Cura.Actions.resetProfile.trigger();
}
}
UM.ExtensionModel {
id: curaExtensions
}
// ###############################################################################################
// Definition of all the connections
// ###############################################################################################
Connections
{
target: Cura.Actions.newProject
onTriggered:
{
if(Printer.platformActivity || Cura.MachineManager.hasUserSettings)
{
newProjectDialog.visible = true
}
}
}
// show the plugin browser dialog
Connections
{
target: Cura.Actions.browsePackages
onTriggered: {
curaExtensions.callExtensionMethod("Toolbox", "browsePackages")
}
}
}

View file

@ -0,0 +1,111 @@
// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.7
import QtQuick.Controls 1.1
import QtQuick.Controls.Styles 1.1
import UM 1.4 as UM
import Cura 1.0 as Cura
import "../Account"
Rectangle
{
id: base
implicitHeight: UM.Theme.getSize("topheader").height
implicitWidth: UM.Theme.getSize("topheader").width
color: UM.Theme.getColor("topheader_background")
Image
{
id: logo
anchors.left: parent.left
anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.verticalCenter: parent.verticalCenter
source: UM.Theme.getImage("logo")
width: UM.Theme.getSize("logo").width
height: UM.Theme.getSize("logo").height
sourceSize.width: width
sourceSize.height: height
}
Row
{
id: stagesListContainer
anchors
{
horizontalCenter: parent.horizontalCenter
leftMargin: UM.Theme.getSize("default_margin").width
}
// The topheader is dynamically filled with all available stages
Repeater
{
id: stagesHeader
model: UM.StageModel { }
delegate: Button
{
text: model.name.toUpperCase()
checkable: true
checked: model.active
exclusiveGroup: topheaderMenuGroup
style: UM.Theme.styles.topheader_tab
height: UM.Theme.getSize("topheader").height
onClicked: UM.Controller.setActiveStage(model.id)
iconSource: model.stage.iconSource
property color overlayColor: "transparent"
property string overlayIconSource: ""
}
}
ExclusiveGroup { id: topheaderMenuGroup }
}
// Shortcut button to quick access the Toolbox
Button
{
id: toolboxShortcutButton
anchors
{
right: accountWidget.left
rightMargin: UM.Theme.getSize("default_margin").width
verticalCenter: parent.verticalCenter
}
style: ButtonStyle
{
background: Rectangle
{
color: control.hovered ? UM.Theme.getColor("secondary") : UM.Theme.getColor("topheader_button_background_active")
radius: 2 * screenScaleFactor
}
label: Label
{
text: catalog.i18nc("@action:button", "Toolbox")
color: UM.Theme.getColor("topheader_button_text_active")
font: UM.Theme.getFont("action_button")
renderType: Text.NativeRendering
}
}
action: Cura.Actions.browsePackages
}
AccountWidget
{
id: accountWidget
anchors
{
right: parent.right
rightMargin: UM.Theme.getSize("default_margin").width
}
}
}