mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-29 07:14:24 +08:00
80 lines
2.3 KiB
QML
80 lines
2.3 KiB
QML
// Copyright (c) 2018 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.7
|
|
import QtQuick.Controls 2.0
|
|
import QtQuick.Layouts 1.3
|
|
|
|
import UM 1.5 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
// Reusable component that holds an (re-colorable) icon on the left with some text on the right.
|
|
// This component is also designed to be used with layouts. It will use the width of the text + icon as preferred width
|
|
// It sets the icon size + half of the content as its minimum width (in which case it will elide the text)
|
|
Item
|
|
{
|
|
property alias source: icon.source
|
|
property alias iconSize: icon.width
|
|
property alias iconColor: icon.color
|
|
property alias color: label.color
|
|
property alias text: label.text
|
|
property alias font: label.font
|
|
property alias elide: label.elide
|
|
property real margin: UM.Theme.getSize("narrow_margin").width
|
|
property alias wrapMode: label.wrapMode
|
|
property real spacing: UM.Theme.getSize("narrow_margin").width
|
|
|
|
property string tooltipText: ""
|
|
|
|
// These properties can be used in combination with layouts.
|
|
readonly property real contentWidth: icon.width + margin + label.contentWidth
|
|
readonly property real minContentWidth: Math.round(icon.width + margin + 0.5 * label.contentWidth)
|
|
|
|
Layout.minimumWidth: minContentWidth
|
|
Layout.preferredWidth: contentWidth
|
|
Layout.fillHeight: true
|
|
Layout.fillWidth: true
|
|
|
|
implicitWidth: icon.width + 100
|
|
implicitHeight: icon.height
|
|
|
|
UM.ColorImage
|
|
{
|
|
id: icon
|
|
width: UM.Theme.getSize("section_icon").width
|
|
height: width
|
|
|
|
color: UM.Theme.getColor("icon")
|
|
|
|
anchors
|
|
{
|
|
left: parent.left
|
|
verticalCenter: parent.verticalCenter
|
|
}
|
|
}
|
|
|
|
UM.Label
|
|
{
|
|
id: label
|
|
elide: Text.ElideRight
|
|
anchors
|
|
{
|
|
left: icon.right
|
|
right: parent.right
|
|
top: parent.top
|
|
bottom: parent.bottom
|
|
rightMargin: 0
|
|
leftMargin: spacing
|
|
margins: margin
|
|
}
|
|
}
|
|
|
|
MouseArea
|
|
{
|
|
enabled: tooltipText != ""
|
|
anchors.fill: parent
|
|
hoverEnabled: true
|
|
onEntered: base.showTooltip(parent, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), tooltipText)
|
|
onExited: base.hideTooltip()
|
|
}
|
|
} |