refactor: move tray items into own file

This commit is contained in:
2 * r + 2 * t 2025-04-30 22:01:10 +10:00
parent 7c16c48b8c
commit 571f3312b2
2 changed files with 55 additions and 52 deletions

View file

@ -1,11 +1,6 @@
import "root:/widgets" import "root:/widgets"
import "root:/services"
import "root:/config"
import Quickshell
import Quickshell.Widgets
import Quickshell.Services.SystemTray import Quickshell.Services.SystemTray
import QtQuick import QtQuick
import Qt5Compat.GraphicalEffects
StyledRect { StyledRect {
animate: true animate: true
@ -16,53 +11,7 @@ StyledRect {
Repeater { Repeater {
model: SystemTray.items model: SystemTray.items
MouseArea { TrayItem {}
id: item
required property SystemTrayItem modelData
acceptedButtons: Qt.LeftButton | Qt.RightButton
width: Appearance.font.size.smaller * 2
height: Appearance.font.size.smaller * 2
onClicked: event => {
if (event.button === Qt.LeftButton)
modelData.activate();
else if (modelData.hasMenu)
menu.open();
}
// TODO custom menu
QsMenuAnchor {
id: menu
menu: item.modelData.menu
anchor.window: QsWindow.window
}
IconImage {
id: icon
visible: !BarConfig.tray.recolourIcons
source: item.modelData.icon
anchors.fill: parent
}
ColorOverlay {
visible: BarConfig.tray.recolourIcons
anchors.fill: icon
source: icon
color: Appearance.colours.lavender
Behavior on color {
ColorAnimation {
duration: Appearance.anim.durations.normal
easing.type: Easing.BezierSpline
easing.bezierCurve: Appearance.anim.curves.standard
}
}
}
}
} }
} }
} }

View file

@ -0,0 +1,54 @@
import "root:/config"
import Quickshell
import Quickshell.Widgets
import Quickshell.Services.SystemTray
import QtQuick
import Qt5Compat.GraphicalEffects
MouseArea {
id: item
required property SystemTrayItem modelData
acceptedButtons: Qt.LeftButton | Qt.RightButton
width: Appearance.font.size.smaller * 2
height: Appearance.font.size.smaller * 2
onClicked: event => {
if (event.button === Qt.LeftButton)
modelData.activate();
else if (modelData.hasMenu)
menu.open();
}
// TODO custom menu
QsMenuAnchor {
id: menu
menu: item.modelData.menu
anchor.window: this.QsWindow.window
}
IconImage {
id: icon
visible: !BarConfig.tray.recolourIcons
source: item.modelData.icon
anchors.fill: parent
}
ColorOverlay {
visible: BarConfig.tray.recolourIcons
anchors.fill: icon
source: icon
color: Appearance.colours.lavender
Behavior on color {
ColorAnimation {
duration: Appearance.anim.durations.normal
easing.type: Easing.BezierSpline
easing.bezierCurve: Appearance.anim.curves.standard
}
}
}
}