123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- // Copyright (c) 2021 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.10
- import QtQuick.Controls 2.3
- import QtQuick.Layouts 1.15
- import UM 1.4 as UM
- import Cura 1.1 as Cura
- Popup
- {
- id: applicationSwitcherPopup
- closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
- opacity: opened ? 1 : 0
- Behavior on opacity { NumberAnimation { duration: 100 } }
- padding: UM.Theme.getSize("wide_margin").width
- contentItem: Grid
- {
- id: ultimakerPlatformLinksGrid
- columns: 3
- spacing: UM.Theme.getSize("default_margin").width
- Repeater
- {
- model:
- [
- {
- displayName: catalog.i18nc("@label:button", "My printers"),
- thumbnail: UM.Theme.getIcon("PrinterTriple", "high"),
- description: catalog.i18nc("@tooltip:button", "Monitor printers in Ultimaker Digital Factory."),
- link: "https://digitalfactory.ultimaker.com/app/printers?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printers",
- permissionsRequired: ["digital-factory.printer.read"]
- },
- {
- displayName: "Digital Library", //Not translated, since it's a brand name.
- thumbnail: UM.Theme.getIcon("Library", "high"),
- description: catalog.i18nc("@tooltip:button", "Create print projects in Digital Library."),
- link: "https://digitalfactory.ultimaker.com/app/library?utm_source=cura&utm_medium=software&utm_campaign=switcher-library",
- permissionsRequired: ["digital-factory.project.read.shared"]
- },
- {
- displayName: catalog.i18nc("@label:button", "Print jobs"),
- thumbnail: UM.Theme.getIcon("FoodBeverages"),
- description: catalog.i18nc("@tooltip:button", "Monitor print jobs and reprint from your print history."),
- link: "https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printjobs",
- permissionsRequired: ["digital-factory.print-job.read"]
- },
- {
- displayName: "Ultimaker Marketplace", //Not translated, since it's a brand name.
- thumbnail: UM.Theme.getIcon("Shop", "high"),
- description: catalog.i18nc("@tooltip:button", "Extend Ultimaker Cura with plugins and material profiles."),
- link: "https://marketplace.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-marketplace-materials",
- permissionsRequired: []
- },
- {
- displayName: "Ultimaker Academy", //Not translated, since it's a brand name.
- thumbnail: UM.Theme.getIcon("Knowledge"),
- description: catalog.i18nc("@tooltip:button", "Become a 3D printing expert with Ultimaker e-learning."),
- link: "https://academy.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-academy",
- permissionsRequired: []
- },
- {
- displayName: catalog.i18nc("@label:button", "Ultimaker support"),
- thumbnail: UM.Theme.getIcon("Help", "high"),
- description: catalog.i18nc("@tooltip:button", "Learn how to get started with Ultimaker Cura."),
- link: "https://support.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-support",
- permissionsRequired: []
- },
- {
- displayName: catalog.i18nc("@label:button", "Ask a question"),
- thumbnail: UM.Theme.getIcon("Speak", "high"),
- description: catalog.i18nc("@tooltip:button", "Consult the Ultimaker Community."),
- link: "https://community.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-community",
- permissionsRequired: []
- },
- {
- displayName: catalog.i18nc("@label:button", "Report a bug"),
- thumbnail: UM.Theme.getIcon("Bug", "high"),
- description: catalog.i18nc("@tooltip:button", "Let developers know that something is going wrong."),
- link: "https://github.com/Ultimaker/Cura/issues/new/choose",
- permissionsRequired: []
- },
- {
- displayName: "Ultimaker.com", //Not translated, since it's a URL.
- thumbnail: UM.Theme.getIcon("Browser"),
- description: catalog.i18nc("@tooltip:button", "Visit the Ultimaker website."),
- link: "https://ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-umwebsite",
- permissionsRequired: []
- }
- ]
- delegate: ApplicationButton
- {
- displayName: modelData.displayName
- iconSource: modelData.thumbnail
- tooltipText: modelData.description
- isExternalLink: true
- visible:
- {
- try
- {
- modelData.permissionsRequired.forEach(function(permission)
- {
- if(!Cura.API.account.isLoggedIn || !Cura.API.account.permissions.includes(permission)) //This required permission is not in the account.
- {
- throw "No permission to use this application."; //Can't return from within this lambda. Throw instead.
- }
- });
- }
- catch(e)
- {
- return false;
- }
- return true;
- }
- onClicked: Qt.openUrlExternally(modelData.link)
- }
- }
- }
- background: UM.PointingRectangle
- {
- color: UM.Theme.getColor("tool_panel_background")
- borderColor: UM.Theme.getColor("lining")
- borderWidth: UM.Theme.getSize("default_lining").width
- // Move the target by the default margin so that the arrow isn't drawn exactly on the corner
- target: Qt.point(width - UM.Theme.getSize("default_margin").width - (applicationSwitcherButton.width / 2), -10)
- arrowSize: UM.Theme.getSize("default_arrow").width
- }
- }
|