Files
osu-shell/NotificationBox.qml

79 lines
2.0 KiB
QML

import Quickshell
import Quickshell.Widgets
import Quickshell.Services.Notifications
import QtQuick
import QtQuick.Controls
import QtQuick.Effects
Rectangle {
id: notifRect
required property var notification
property bool exiting: false
width: parent?.width ?? 0
height: notifContent.childrenRect.height + 32
radius: 20
color: "#181818"
ClippingRectangle {
antialiasing: true
anchors {
verticalCenter: parent.verticalCenter
left: parent.left
leftMargin: 12
}
radius: 8
width: 40
height: 40
Image {
id: notifIcon
anchors.fill: parent
source: notification?.image ?? source
}
}
Column {
id: notifContent
anchors {
left: parent.left
right: parent.right
top: parent.top
topMargin: 16
leftMargin: 16 + (notifIcon.source == "" ? 0 : 44)
rightMargin: 16
}
spacing: 6
Text {
anchors {
left: parent.left
right: parent.right
}
color: "white"
font.family: "Comfortaa"
font.pixelSize: 16
text: notification?.summary ?? text
elide: Text.ElideRight
wrapMode: Text.Wrap
maximumLineCount: 2
}
Text {
anchors {
left: parent.left
right: parent.right
}
color: "white"
font.family: "Comfortaa"
font.pixelSize: 12
text: notification?.body ?? text
elide: Text.ElideRight
wrapMode: Text.Wrap
maximumLineCount: 4
}
}
Timer {
running: notification?.expireTimeout > 0
interval: (notification?.expireTimeout > 0) ? notification?.expireTimeout : 0
onTriggered: notification.tracked = false
}
}