pragma Singleton import QtQuick import NovaStats as NS import "." as S QtObject { id: root readonly property int usage: NS.CpuService.usage readonly property real freqGhz: NS.CpuService.freqGhz // cores arrives as QList JSON; parse into [{usage, freq_ghz, history:[]}] readonly property var cores: { let raw = NS.CpuService.cores; let out = []; for (let i = 0; i < raw.length; i++) out.push(JSON.parse(raw[i])); return out; } readonly property var coreMaxFreq: NS.CpuService.coreMaxFreq readonly property var coreTypes: NS.CpuService.coreTypes readonly property var history: NS.CpuService.history // Gate per-core history: applets increment/decrement coreConsumers property int coreConsumers: 0 onCoreConsumersChanged: { NS.CpuService.enableCoreHistory = coreConsumers > 0; if (coreConsumers <= 0) _coreGraceTimer.start(); else _coreGraceTimer.stop(); } property Timer _coreGraceTimer: Timer { interval: 30000 onTriggered: NS.CpuService.clearCoreHistory() } property Timer _pollTimer: Timer { interval: { const ms = S.Modules.statsDaemon.interval; return ms > 0 ? ms : 4000; } running: true repeat: true triggeredOnStart: true onTriggered: NS.CpuService.poll() } }