62 lines
1.7 KiB
QML
62 lines
1.7 KiB
QML
import QtQuick 2.14
|
|
import QtQuick.Controls 2.14
|
|
import QtQuick.Layouts 1.14
|
|
|
|
import StatusQ.Core 0.1
|
|
import StatusQ.Core.Theme 0.1
|
|
|
|
Control {
|
|
id: root
|
|
|
|
enum Type {
|
|
Warning,
|
|
Error
|
|
}
|
|
property int type: IssuePill.Type.Warning
|
|
|
|
property int count
|
|
property string text: root.type === IssuePill.Type.Warning ? qsTr("%n warning(s)", "", root.count)
|
|
: qsTr("%n error(s)", "", root.count)
|
|
property alias bgCornerRadius: background.radius
|
|
|
|
horizontalPadding: 8
|
|
verticalPadding: 4
|
|
|
|
QtObject {
|
|
id: d
|
|
readonly property color baseColor: root.type === IssuePill.Type.Warning ? Theme.palette.pinColor1
|
|
: Theme.palette.dangerColor1
|
|
}
|
|
|
|
background: Rectangle {
|
|
id: background
|
|
radius: 100
|
|
color: Theme.palette.alphaColor(d.baseColor, 0.03)
|
|
border.width: 1
|
|
border.color: Theme.palette.alphaColor(d.baseColor, 0.3)
|
|
}
|
|
|
|
contentItem: RowLayout {
|
|
spacing: 4
|
|
StatusIcon {
|
|
Layout.preferredWidth: 20
|
|
Layout.preferredHeight: 20
|
|
Layout.alignment: Qt.AlignVCenter
|
|
icon: "warning"
|
|
color: d.baseColor
|
|
}
|
|
StatusBaseText {
|
|
Layout.fillWidth: true
|
|
Layout.fillHeight: true
|
|
Layout.alignment: Qt.AlignVCenter
|
|
verticalAlignment: Qt.AlignVCenter
|
|
text: root.text
|
|
color: d.baseColor
|
|
font.pixelSize: 12
|
|
wrapMode: Text.WordWrap
|
|
maximumLineCount: 3
|
|
elide: Text.ElideRight
|
|
}
|
|
}
|
|
}
|