This repository has been archived on 2026-05-31. You can view files and clone it, but cannot push or open issues or pull requests.

109 lines
3.4 KiB
QML

import QtQuick 2.9
import QtQuick.Controls 2.2
import QtQuick.Controls.Material 2.2
import QtQuick.Layouts 1.3
Item {
id: root
property alias iconName: colorIcon.name
property alias fallbackIconName: fallbackIcon.name
property alias iconColor: colorIcon.color
property string text
property bool disconnected: false
property bool batteryCritical: false
property alias contentItem: innerContent.children
signal clicked();
signal pressAndHold();
Pane {
anchors.fill: parent
anchors.margins: app.margins / 2
Material.elevation: 1
padding: 0
contentItem: ItemDelegate {
padding: 0; topPadding: 0; bottomPadding: 0
onClicked: root.clicked()
onPressAndHold: root.pressAndHold()
contentItem: ColumnLayout {
spacing: 0
ColumnLayout {
Layout.fillHeight: true
Layout.margins: app.margins
Item {
Layout.fillWidth: true
Layout.fillHeight: true
ColorIcon {
id: colorIcon
anchors.centerIn: parent
height: app.iconSize * 1.3
width: height
ColorIcon {
id: fallbackIcon
anchors.fill: parent
color: root.iconColor
visible: parent.status === Image.Error
}
}
}
Item {
Layout.fillWidth: true
Layout.fillHeight: true
Label {
id: label
anchors.centerIn: parent
width: parent.width
text: root.text.toUpperCase()
font.pixelSize: app.smallFont
font.letterSpacing: 1
wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter
maximumLineCount: 2
elide: Text.ElideRight
}
}
}
MouseArea {
id: innerContent
Layout.fillWidth: true
Layout.preferredHeight: app.iconSize + app.margins * 2
visible: root.contentItem.length > 1
Rectangle {
anchors.fill: parent
color: Material.foreground
opacity: 0.05
}
}
}
}
}
Row {
id: quickAlertPane
anchors { top: parent.top; right: parent.right; margins: app.margins }
ColorIcon {
height: app.iconSize / 2
width: height
name: "../images/dialog-warning-symbolic.svg"
color: "red"
visible: root.disconnected
}
ColorIcon {
height: app.iconSize / 2
width: height
name: "../images/battery/battery-010.svg"
visible: root.batteryCritical
}
}
}