progress save

This commit is contained in:
kossLAN 2025-08-10 01:41:30 -04:00
parent fa7d012416
commit d32bedda31
Signed by: kossLAN
SSH key fingerprint: SHA256:bdV0x+wdQHGJ6LgmstH3KV8OpWY+OOFmJcPcB0wQPV8
9 changed files with 293 additions and 249 deletions

View file

@ -2,95 +2,27 @@ pragma ComponentBehavior: Bound
import QtQuick
import QtQuick.Layouts
import Quickshell
import Quickshell.Widgets
import Quickshell.Services.SystemTray
import qs.widgets
import ".."
RowLayout {
id: root
spacing: 5
visible: SystemTray.items.values.length > 0
required property var popup
required property PopupHandler popup
Repeater {
id: repeater
model: SystemTray.items
delegate: Item {
id: trayField
delegate: TrayMenuLauncher {
id: trayItem
required property SystemTrayItem modelData
trayItem: modelData
popup: root.popup
Layout.preferredWidth: parent.height
Layout.fillHeight: true
required property SystemTrayItem modelData
StyledMouseArea {
id: trayButton
hoverEnabled: true
onClicked: {
menuOpener.menu = trayField.modelData.menu;
if (root.popup.content == trayMenu) {
root.popup.hide();
return;
}
root.popup.set(this, trayMenu);
root.popup.show();
}
anchors {
fill: parent
margins: 2
}
IconImage {
id: trayIcon
anchors.fill: parent
source: {
// console.log(trayField.modelData.id);
switch (trayField.modelData.id) {
case "obs":
return "image://icon/obs-tray";
default:
return trayField.modelData.icon;
}
}
}
}
QsMenuOpener {
id: menuOpener
}
WrapperItem {
id: trayMenu
visible: false
property var leftItem: false
property var rightItem: false
ColumnLayout {
id: menuContainer
spacing: 2
Repeater {
model: menuOpener.children
delegate: TrayMenuItem {
id: sysTrayContent
Layout.fillWidth: true
Layout.fillHeight: true
rootMenu: trayMenu
onInteracted: {
root.popup.hide();
menuOpener.menu = null;
}
}
}
}
}
}
}
}