// Quiet transient Signal Glass content. It acknowledges one meaningful state // transition and then leaves; it is not a notification and has no history. import QtQuick import qs.config import qs.services import qs.widgets Rectangle { id: root required property var event readonly property color toneColor: { if (event?.tone === "danger") return Theme.danger; if (event?.tone === "warn") return Theme.warn; if (event?.tone === "ok") return Theme.ok; return Theme.accent; } radius: Theme.popoverRadius color: Theme.alpha(Theme.bgPopover, 0.86) border.width: 1 border.color: Theme.alpha(Theme.fg, 0.09) PrismEdge { anchors.top: parent.top anchors.topMargin: 1 anchors.left: parent.left anchors.right: parent.right inset: parent.radius } Rectangle { id: mark anchors.left: parent.left anchors.leftMargin: 12 anchors.verticalCenter: parent.verticalCenter width: 38 height: 38 radius: 19 border.width: 0 color: Theme.alpha(root.toneColor, 0.14) Text { anchors.centerIn: parent visible: root.event?.glyph !== "" text: root.event?.glyph ?? "" color: root.toneColor font.family: Theme.fontMono font.pixelSize: 19 } ThemedIcon { anchors.centerIn: parent visible: root.event?.glyph === "" size: 19 icon: root.event?.icon ?? "dialog-information-symbolic" tint: root.toneColor } } Column { anchors.left: mark.right anchors.leftMargin: 11 anchors.right: closeButton.left anchors.rightMargin: 10 anchors.verticalCenter: parent.verticalCenter spacing: 2 Text { width: parent.width text: root.event?.title ?? "" color: Theme.fg elide: Text.ElideRight font.family: Theme.fontFamily font.pixelSize: Theme.fontSize font.weight: Font.DemiBold } Text { width: parent.width visible: text !== "" text: root.event?.detail ?? "" color: Theme.fgDim elide: Text.ElideRight font.family: Theme.fontFamily font.pixelSize: Theme.fontSizeSmall } } Rectangle { id: closeButton anchors.right: parent.right anchors.rightMargin: 10 anchors.verticalCenter: parent.verticalCenter width: 28 height: 28 radius: 14 border.width: 0 color: closeMouse.containsMouse ? Theme.alpha(Theme.fg, Theme.hoverAlpha) : "transparent" ThemedIcon { anchors.centerIn: parent size: 14 icon: "window-close-symbolic" tint: Theme.fgDim } MouseArea { id: closeMouse anchors.fill: parent hoverEnabled: true cursorShape: Qt.PointingHandCursor onClicked: StatusEvents.dismiss() } } MouseArea { anchors.left: parent.left anchors.right: closeButton.left anchors.top: parent.top anchors.bottom: parent.bottom cursorShape: root.event?.actionId ? Qt.PointingHandCursor : Qt.ArrowCursor onClicked: { if (root.event?.actionId) StatusEvents.invoke(); else StatusEvents.dismiss(); } } }