import QtQuick import QtQuick.Layouts import ZShell import ZShell.Components import ZShell.Services import ZShell.Config import qs.Components import qs.Modules.Resources.Cards import qs.Helpers import qs.Services Item { id: root required property Wrapper wrapper implicitHeight: ZUtils.snap(content.implicitHeight + Tokens.padding.small * 2, root) implicitWidth: ZUtils.snap(content.implicitWidth, root) SnapLayout { id: content anchors.fill: parent anchors.margins: Tokens.padding.small spacing: Tokens.spacing.large SnapLayout { id: mainColumn Layout.fillWidth: true spacing: Tokens.spacing.medium orientation: Qt.Vertical SnapLayout { id: hero spacing: Tokens.spacing.medium visible: cpuCard.active || gpuCard.active WrappedLoader { id: cpuCard active: Config.dashboard.performance.showCpu sourceComponent: HeroCard { accent: Colors.palette.m3primary icon: "memory" label: qsTr("CPU") subLabel: Cpu.name temperature: Cpu.temperature usage: Cpu.percentage ServiceRef { service: Cpu } } } WrappedLoader { id: gpuCard active: Config.dashboard.performance.showGpu && Gpu.type !== Gpu.None sourceComponent: HeroCard { accent: Colors.palette.m3secondary icon: "desktop_windows" label: qsTr("GPU") subLabel: Gpu.name temperature: Gpu.temperature usage: Gpu.percentage ServiceRef { service: Gpu } } } } SnapLayout { id: card Layout.fillWidth: true spacing: Tokens.spacing.medium visible: storageCard.active || memoryCard.active || vramCard.active || networkCard1.active WrappedLoader { id: storageCard active: Config.dashboard.performance.showStorage sourceComponent: StorageCard {} } WrappedLoader { id: memoryCard active: Config.dashboard.performance.showMemory sourceComponent: MemoryCard { used: Memory.used total: Memory.total perc: Memory.percentage label: qsTr("Memory") icon: "memory_alt" ServiceRef { service: Memory } } } WrappedLoader { id: vramCard active: Config.dashboard.performance.showVram sourceComponent: MemoryCard { used: Gpu.memoryUsed total: Gpu.memoryTotal perc: Gpu.memoryUsed / Gpu.memoryTotal label: qsTr("Video memory") icon: "memory_alt" } } WrappedLoader { id: networkCard1 active: Config.dashboard.performance.showNetwork && !vramCard.active sourceComponent: NetworkCard {} } } WrappedLoader { id: networkCard2 active: Config.dashboard.performance.showNetwork && vramCard.active sourceComponent: NetworkCard {} } } WrappedLoader { Layout.fillWidth: false active: Battery.isLaptop && Config.dashboard.performance.showBattery sourceComponent: BatteryTank {} } } component WrappedLoader: Loader { Layout.fillHeight: true Layout.fillWidth: true visible: active } }