1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
// 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
// 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
margins: margin
}
}
}
|