78 lines
2.2 KiB
QML
78 lines
2.2 KiB
QML
import qs.components
|
|
import qs.services
|
|
import qs.config
|
|
import Quickshell.Services.SystemTray
|
|
import QtQuick
|
|
|
|
StyledRect {
|
|
id: root
|
|
|
|
readonly property alias items: items
|
|
|
|
clip: true
|
|
visible: width > 0 && height > 0 // To avoid warnings about being visible with no size
|
|
|
|
implicitWidth: Config.bar.sizes.innerWidth
|
|
implicitHeight: layout.implicitHeight + (Config.bar.tray.background ? Appearance.padding.normal : Appearance.padding.small) * 2
|
|
|
|
color: Qt.alpha(Colours.tPalette.m3surfaceContainer, Config.bar.tray.background ? Colours.tPalette.m3surfaceContainer.a : 0)
|
|
radius: Appearance.rounding.full
|
|
|
|
Column {
|
|
id: layout
|
|
|
|
anchors.centerIn: parent
|
|
spacing: Appearance.spacing.small
|
|
|
|
add: Transition {
|
|
NumberAnimation {
|
|
properties: "scale"
|
|
from: 0
|
|
to: 1
|
|
duration: Appearance.anim.durations.normal
|
|
easing.type: Easing.BezierSpline
|
|
easing.bezierCurve: Appearance.anim.curves.standardDecel
|
|
}
|
|
}
|
|
|
|
move: Transition {
|
|
NumberAnimation {
|
|
properties: "scale"
|
|
to: 1
|
|
duration: Appearance.anim.durations.normal
|
|
easing.type: Easing.BezierSpline
|
|
easing.bezierCurve: Appearance.anim.curves.standardDecel
|
|
}
|
|
NumberAnimation {
|
|
properties: "x,y"
|
|
duration: Appearance.anim.durations.normal
|
|
easing.type: Easing.BezierSpline
|
|
easing.bezierCurve: Appearance.anim.curves.standard
|
|
}
|
|
}
|
|
|
|
Repeater {
|
|
id: items
|
|
|
|
model: SystemTray.items
|
|
|
|
TrayItem {}
|
|
}
|
|
}
|
|
|
|
Behavior on implicitWidth {
|
|
NumberAnimation {
|
|
duration: Appearance.anim.durations.normal
|
|
easing.type: Easing.BezierSpline
|
|
easing.bezierCurve: Appearance.anim.curves.emphasized
|
|
}
|
|
}
|
|
|
|
Behavior on implicitHeight {
|
|
NumberAnimation {
|
|
duration: Appearance.anim.durations.normal
|
|
easing.type: Easing.BezierSpline
|
|
easing.bezierCurve: Appearance.anim.curves.emphasized
|
|
}
|
|
}
|
|
}
|