diff --git a/resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml b/resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml index 574061907e..a8ea2312a5 100644 --- a/resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml +++ b/resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml @@ -50,119 +50,12 @@ Item } } } - - Popup + ApplicationSwitcherPopup { id: applicationSwitcherPopup - y: parent.height + UM.Theme.getSize("default_arrow").height // Move the x position by the default margin so that the arrow isn't drawn exactly on the corner x: parent.width - width + UM.Theme.getSize("default_margin").width - - closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent - - opacity: opened ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 100 } } - padding: UM.Theme.getSize("wide_margin").width - - contentItem: Item - { - id: applicationsContainer - anchors.fill: parent - anchors.margins: UM.Theme.getSize("wide_margin").width - - Grid - { - id: ultimakerPlatformLinksGrid - columns: 3 - spacing: UM.Theme.getSize("default_margin").width - anchors.top: parent.top - anchors.left: parent.left - - Repeater - { - model: - [ - { - displayName: catalog.i18nc("@label:button", "My printers"), - thumbnail: UM.Theme.getIcon("PrinterTriple", "high"), - description: catalog.i18nc("@tooltip:button", "Manage your printers in the Digital Factory."), - link: "https://digitalfactory.ultimaker.com/app/printers?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printers" - }, - { - displayName: "Digital Library", //Not translated, since it's a brand name. - thumbnail: UM.Theme.getIcon("Library", "high"), - description: catalog.i18nc("@tooltip:button", "Manage your files in the Digital Library."), - link: "https://digitalfactory.ultimaker.com/app/library?utm_source=cura&utm_medium=software&utm_campaign=switcher-library" - }, - { - displayName: catalog.i18nc("@label:button", "Print jobs"), - thumbnail: UM.Theme.getIcon("FoodBeverages"), - description: catalog.i18nc("@tooltip:button", "Manage things that are being printed."), - link: "https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory- printjobs" - }, - { - 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 new plug-ins and profiles."), - link: "https://marketplace.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-marketplace-materials" - }, - { - displayName: "Ultimaker Academy", //Not translated, since it's a brand name. - thumbnail: UM.Theme.getIcon("Knowledge"), - description: catalog.i18nc("@tooltip:button", "Become an expert in 3D printing."), - link: "https://academy.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-academy" - }, - { - displayName: catalog.i18nc("@label:button", "Ultimaker support"), - thumbnail: UM.Theme.getIcon("Help", "high"), - description: catalog.i18nc("@tooltip:button", "Get help with how to use Ultimaker Cura."), - link: "https://support.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-support" - }, - { - 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" - }, - { - displayName: catalog.i18nc("@label:button", "Report a bug"), - thumbnail: UM.Theme.getIcon("Bug", "high"), - description: catalog.i18nc("@tooltip:button", "Notify the developers that something is going wrong."), - link: "https://github.com/Ultimaker/Cura/issues/new/choose" - }, - { - displayName: "Ultimaker.com", //Not translated, since it's a URL. - thumbnail: UM.Theme.getIcon("Browser"), - description: catalog.i18nc("@tooltip:button", "Visit Ultimaker's website."), - link: "https://ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-umwebsite" - } - ] - - delegate: ApplicationButton - { - displayName: modelData.displayName - iconSource: modelData.thumbnail - tooltipText: modelData.description - isExternalLink: 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 - } } } \ No newline at end of file diff --git a/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml new file mode 100644 index 0000000000..25d4539cf9 --- /dev/null +++ b/resources/qml/ApplicationSwitcher/ApplicationSwitcherPopup.qml @@ -0,0 +1,119 @@ +// 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: Item + { + id: applicationsContainer + anchors.fill: parent + anchors.margins: UM.Theme.getSize("wide_margin").width + + Grid + { + id: ultimakerPlatformLinksGrid + columns: 3 + spacing: UM.Theme.getSize("default_margin").width + anchors.top: parent.top + anchors.left: parent.left + + Repeater + { + model: + [ + { + displayName: catalog.i18nc("@label:button", "My printers"), + thumbnail: UM.Theme.getIcon("PrinterTriple", "high"), + description: catalog.i18nc("@tooltip:button", "Manage your printers in the Digital Factory."), + link: "https://digitalfactory.ultimaker.com/app/printers?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printers" + }, + { + displayName: "Digital Library", //Not translated, since it's a brand name. + thumbnail: UM.Theme.getIcon("Library", "high"), + description: catalog.i18nc("@tooltip:button", "Manage your files in the Digital Library."), + link: "https://digitalfactory.ultimaker.com/app/library?utm_source=cura&utm_medium=software&utm_campaign=switcher-library" + }, + { + displayName: catalog.i18nc("@label:button", "Print jobs"), + thumbnail: UM.Theme.getIcon("FoodBeverages"), + description: catalog.i18nc("@tooltip:button", "Manage things that are being printed."), + link: "https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory- printjobs" + }, + { + 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 new plug-ins and profiles."), + link: "https://marketplace.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-marketplace-materials" + }, + { + displayName: "Ultimaker Academy", //Not translated, since it's a brand name. + thumbnail: UM.Theme.getIcon("Knowledge"), + description: catalog.i18nc("@tooltip:button", "Become an expert in 3D printing."), + link: "https://academy.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-academy" + }, + { + displayName: catalog.i18nc("@label:button", "Ultimaker support"), + thumbnail: UM.Theme.getIcon("Help", "high"), + description: catalog.i18nc("@tooltip:button", "Get help with how to use Ultimaker Cura."), + link: "https://support.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-support" + }, + { + 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" + }, + { + displayName: catalog.i18nc("@label:button", "Report a bug"), + thumbnail: UM.Theme.getIcon("Bug", "high"), + description: catalog.i18nc("@tooltip:button", "Notify the developers that something is going wrong."), + link: "https://github.com/Ultimaker/Cura/issues/new/choose" + }, + { + displayName: "Ultimaker.com", //Not translated, since it's a URL. + thumbnail: UM.Theme.getIcon("Browser"), + description: catalog.i18nc("@tooltip:button", "Visit Ultimaker's website."), + link: "https://ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-umwebsite" + } + ] + + delegate: ApplicationButton + { + displayName: modelData.displayName + iconSource: modelData.thumbnail + tooltipText: modelData.description + isExternalLink: 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 + } +} \ No newline at end of file