mirror of
https://github.com/Ultimaker/Cura.git
synced 2025-07-23 14:44:13 -06:00
Introduce the ApplicationSwitcher widget
It includes only the hardcoded model with the Ultimaker links for now. CURA-8421
This commit is contained in:
parent
1305abac6f
commit
570fb3cf93
6 changed files with 238 additions and 1 deletions
122
resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml
Normal file
122
resources/qml/ApplicationSwitcher/ApplicationSwitcher.qml
Normal file
|
@ -0,0 +1,122 @@
|
|||
// 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
|
||||
|
||||
Item
|
||||
{
|
||||
id: applicationSwitcherWidget
|
||||
width: appSwitcherButton.width
|
||||
height: width
|
||||
|
||||
|
||||
Button
|
||||
{
|
||||
id: appSwitcherButton
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.horizontalCenter: parent.horizontalCenter
|
||||
|
||||
width: Math.round(0.5 * UM.Theme.getSize("main_window_header").height)
|
||||
height: width
|
||||
|
||||
background: UM.RecolorImage
|
||||
{
|
||||
width: UM.Theme.getSize("small_button_icon").width
|
||||
height: width
|
||||
anchors.verticalCenter: appSwitcherButton.verticalCenter
|
||||
anchors.horizontalCenter: appSwitcherButton.horizontalCenter
|
||||
color: UM.Theme.getColor("main_background")
|
||||
|
||||
source: UM.Theme.getIcon("ApplicationSwitcher")
|
||||
}
|
||||
|
||||
onClicked:
|
||||
{
|
||||
if (popup.opened)
|
||||
{
|
||||
popup.close()
|
||||
} else {
|
||||
popup.open()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Popup
|
||||
{
|
||||
id: popup
|
||||
|
||||
y: parent.height + UM.Theme.getSize("default_arrow").height
|
||||
x: parent.width - width
|
||||
|
||||
closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
|
||||
|
||||
opacity: opened ? 1 : 0
|
||||
Behavior on opacity { NumberAnimation { duration: 100 } }
|
||||
padding: 0
|
||||
width: contentWidth + 2 * UM.Theme.getSize("wide_margin").width
|
||||
height: contentHeight + 2 * UM.Theme.getSize("wide_margin").width
|
||||
|
||||
contentItem: Item
|
||||
{
|
||||
id: projectListContainer
|
||||
anchors.fill: parent
|
||||
anchors.margins: UM.Theme.getSize("wide_margin").width
|
||||
|
||||
Column
|
||||
{
|
||||
id: contentsColumn
|
||||
anchors.top: parent.top
|
||||
anchors.left: parent.left
|
||||
|
||||
width: gridLayout.width
|
||||
|
||||
Grid
|
||||
{
|
||||
id: gridLayout
|
||||
columns: 3
|
||||
spacing: UM.Theme.getSize("default_margin").width
|
||||
Repeater
|
||||
{
|
||||
id:gridgenerate
|
||||
|
||||
model:
|
||||
[
|
||||
{ displayName: "Report issue1", thumbnail: UM.Theme.getIcon("Bug"), description: "This is the description1", link: "https://github.com/Ultimaker/Cura/issues/1" },
|
||||
{ displayName: "My printers", thumbnail: UM.Theme.getIcon("Bug"), description: "This is the description2", link: "https://github.com/Ultimaker/Cura/issues/2" },
|
||||
{ displayName: "Ultimaker.com", thumbnail: UM.Theme.getIcon("Bug"), description: "This is the description3", link: "https://ultimaker.com" },
|
||||
{ displayName: "Report issue4", thumbnail: UM.Theme.getIcon("Bug"), description: "This is the description4", link: "https://github.com/Ultimaker/Cura/issues/4" },
|
||||
{ displayName: "Report issue5", thumbnail: UM.Theme.getIcon("Bug"), description: "This is the description5", link: "https://github.com/Ultimaker/Cura/issues/5" }
|
||||
]
|
||||
|
||||
delegate: ApplicationButton
|
||||
{
|
||||
displayName: modelData.displayName
|
||||
iconSource: modelData.thumbnail
|
||||
tooltipText: modelData.description
|
||||
isExternalLink: (index % 2 == 0)
|
||||
|
||||
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
|
||||
|
||||
target: Qt.point(width - (appSwitcherButton.width / 2), -10)
|
||||
|
||||
arrowSize: UM.Theme.getSize("default_arrow").width
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue