diff --git a/modules/Backlight.qml b/modules/Backlight.qml index 8d7c5d3..0973603 100644 --- a/modules/Backlight.qml +++ b/modules/Backlight.qml @@ -12,12 +12,9 @@ M.BarSection { property int percent: 0 property bool _osdActive: false - property bool _ready: false readonly property bool _showPanel: root._hovered || hoverPanel.panelHovered || _osdActive - Component.onCompleted: _ready = true - - onPercentChanged: if (_ready && percent > 0) + onPercentChanged: if (percent > 0) _flashPanel() function _flashPanel() { diff --git a/modules/NotifItem.qml b/modules/NotifItem.qml index 1f5199f..e24941f 100644 --- a/modules/NotifItem.qml +++ b/modules/NotifItem.qml @@ -29,17 +29,29 @@ QtObject { } } - // Relative time string — recomputed whenever NotifService._now ticks (single global 5s timer) - readonly property string timeStr: { - const diff = M.NotifService._now - time; + // Relative time string + property string timeStr: "now" + readonly property Timer _timeStrTimer: Timer { + running: root.state !== "dismissed" + repeat: true + interval: 5000 + onTriggered: root._updateTimeStr() + } + + function _updateTimeStr() { + const diff = Date.now() - time; const m = Math.floor(diff / 60000); - if (m < 1) - return "now"; + if (m < 1) { + timeStr = "now"; + return; + } const h = Math.floor(m / 60); - if (h < 1) - return m + "m"; + if (h < 1) { + timeStr = m + "m"; + return; + } const d = Math.floor(h / 24); - return d > 0 ? d + "d" : h + "h"; + timeStr = d > 0 ? d + "d" : h + "h"; } function beginDismiss() { diff --git a/modules/NotifService.qml b/modules/NotifService.qml index 0591eae..b266f94 100644 --- a/modules/NotifService.qml +++ b/modules/NotifService.qml @@ -124,15 +124,6 @@ QtObject { } // Persistence - // Single global tick for all NotifItem.timeStr bindings — replaces per-item 5s timers - property real _now: Date.now() - property Timer _nowTimer: Timer { - running: root.count > 0 - repeat: true - interval: 5000 - onTriggered: root._now = Date.now() - } - property Timer _saveTimer: Timer { interval: 1000 onTriggered: { diff --git a/modules/SystemStats.qml b/modules/SystemStats.qml index a9fe320..372a103 100644 --- a/modules/SystemStats.qml +++ b/modules/SystemStats.qml @@ -21,11 +21,7 @@ QtObject { property var _coreGraceTimer: Timer { interval: 30000 - onTriggered: root.cpuCores = root.cpuCores.map(() => ({ - "usage": 0, - "freq_ghz": 0, - "history": [] - })) + onTriggered: root.cpuCores = [] } property var cpuCoreMaxFreq: [] property var cpuCoreTypes: [] diff --git a/modules/Volume.qml b/modules/Volume.qml index 2aa5524..b091a43 100644 --- a/modules/Volume.qml +++ b/modules/Volume.qml @@ -39,16 +39,11 @@ M.BarSection { } property bool _osdActive: false - property bool _ready: false readonly property bool _anyHover: root._hovered || hoverPanel.panelHovered readonly property bool _showPanel: _anyHover || _osdActive - Component.onCompleted: _ready = true - - onVolumeChanged: if (_ready) - _flashPanel() - onMutedChanged: if (_ready) - _flashPanel() + onVolumeChanged: _flashPanel() + onMutedChanged: _flashPanel() function _flashPanel() { _osdActive = true;