mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-30 07:44:22 +08:00

When the displayname of the app is long and it spans to the next line, it was pushing the icon up in the column, making it seem like it is misaligned. This is now fixed and the icons should be aligned regardless if the display name has one or two lines. CURA-8421
100 lines
3.0 KiB
QML
100 lines
3.0 KiB
QML
// 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 UM 1.4 as UM
|
|
import Cura 1.1 as Cura
|
|
|
|
Button
|
|
{
|
|
id: base
|
|
|
|
property alias iconSource: applicationIcon.source
|
|
property alias displayName: applicationDisplayName.text
|
|
property alias tooltipText: tooltip.text
|
|
property bool isExternalLink: false
|
|
|
|
width: UM.Theme.getSize("application_switcher_item").width
|
|
height: UM.Theme.getSize("application_switcher_item").height
|
|
|
|
background: Rectangle
|
|
{
|
|
color: parent.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
|
|
border.color: parent.hovered ? UM.Theme.getColor("primary") : "transparent"
|
|
border.width: UM.Theme.getSize("default_lining").width
|
|
}
|
|
|
|
UM.TooltipArea
|
|
{
|
|
id: tooltip
|
|
anchors.fill: parent
|
|
}
|
|
|
|
Column
|
|
{
|
|
id: applicationButtonContent
|
|
anchors.centerIn: parent
|
|
|
|
UM.RecolorImage
|
|
{
|
|
id: applicationIcon
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
color: UM.Theme.getColor("monitor_icon_primary")
|
|
width: UM.Theme.getSize("application_switcher_icon").width
|
|
height: width
|
|
|
|
Item
|
|
{
|
|
id: externalLinkIndicator
|
|
|
|
visible: base.isExternalLink
|
|
|
|
anchors
|
|
{
|
|
bottom: parent.bottom
|
|
bottomMargin: - Math.round(height * 1 / 6)
|
|
right: parent.right
|
|
rightMargin: - Math.round(width * 5 / 6)
|
|
}
|
|
|
|
Rectangle
|
|
{
|
|
id: externalLinkIndicatorBackground
|
|
anchors.centerIn: parent
|
|
width: UM.Theme.getSize("small_button_icon").width
|
|
height: width
|
|
color: base.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
|
|
radius: 0.5 * width
|
|
}
|
|
|
|
UM.RecolorImage
|
|
{
|
|
id: externalLinkIndicatorIcon
|
|
anchors.centerIn: parent
|
|
|
|
width: UM.Theme.getSize("printer_status_icon").width
|
|
height: width
|
|
color: UM.Theme.getColor("monitor_icon_primary")
|
|
source: UM.Theme.getIcon("LinkExternal")
|
|
}
|
|
}
|
|
}
|
|
|
|
Label
|
|
{
|
|
id: applicationDisplayName
|
|
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
|
|
width: base.width - UM.Theme.getSize("default_margin").width
|
|
height: base.height - applicationIcon.height - 2 * UM.Theme.getSize("default_margin").width // Account for the top and bottom margins
|
|
horizontalAlignment: Text.AlignHCenter
|
|
verticalAlignment: Text.AlignVCenter
|
|
wrapMode: Text.Wrap
|
|
elide: Text.ElideRight
|
|
}
|
|
}
|
|
} |