import QtQuick import QtQuick.Layouts import qs.Services import qs.Widgets // Unified system card: monitors CPU, temp, memory, disk NBox { id: root readonly property real scaling: Scaling.scale(screen) Layout.preferredWidth: 84 * scaling implicitHeight: content.implicitHeight + Style.marginTiny * 2 * scaling Column { id: content anchors.left: parent.left anchors.right: parent.right anchors.top: parent.top anchors.leftMargin: Style.marginSmall * scaling anchors.rightMargin: Style.marginSmall * scaling anchors.topMargin: Style.marginTiny * scaling anchors.bottomMargin: Style.marginMedium * scaling spacing: Style.marginSmall * scaling // Slight top padding Item { height: Style.marginTiny * scaling } NSystemMonitor { id: sysMon; intervalSeconds: 1 } NCircleStat { value: sysMon.cpuUsage || SysInfo.cpuUsage; icon: "speed"; flat: true; contentScale: 0.8; width: 72 * scaling; height: 68 * scaling } NCircleStat { value: sysMon.cpuTemp || SysInfo.cpuTemp; suffix: "°C"; icon: "device_thermostat"; flat: true; contentScale: 0.8; width: 72 * scaling; height: 68 * scaling } NCircleStat { value: sysMon.memoryUsagePer || SysInfo.memoryUsagePer; icon: "memory"; flat: true; contentScale: 0.8; width: 72 * scaling; height: 68 * scaling } NCircleStat { value: sysMon.diskUsage || SysInfo.diskUsage; icon: "data_usage"; flat: true; contentScale: 0.8; width: 72 * scaling; height: 68 * scaling } // Extra bottom padding to shift the perceived stack slightly upward Item { height: Style.marginMedium * scaling } } }