Compare commits

..

2 commits

5 changed files with 33 additions and 24 deletions

View file

@ -12,9 +12,12 @@ M.BarSection {
property int percent: 0
property bool _osdActive: false
property bool _ready: false
readonly property bool _showPanel: root._hovered || hoverPanel.panelHovered || _osdActive
onPercentChanged: if (percent > 0)
Component.onCompleted: _ready = true
onPercentChanged: if (_ready && percent > 0)
_flashPanel()
function _flashPanel() {

View file

@ -29,29 +29,17 @@ QtObject {
}
}
// 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;
// Relative time string recomputed whenever NotifService._now ticks (single global 5s timer)
readonly property string timeStr: {
const diff = M.NotifService._now - time;
const m = Math.floor(diff / 60000);
if (m < 1) {
timeStr = "now";
return;
}
if (m < 1)
return "now";
const h = Math.floor(m / 60);
if (h < 1) {
timeStr = m + "m";
return;
}
if (h < 1)
return m + "m";
const d = Math.floor(h / 24);
timeStr = d > 0 ? d + "d" : h + "h";
return d > 0 ? d + "d" : h + "h";
}
function beginDismiss() {

View file

@ -124,6 +124,15 @@ 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: {

View file

@ -21,7 +21,11 @@ QtObject {
property var _coreGraceTimer: Timer {
interval: 30000
onTriggered: root.cpuCores = []
onTriggered: root.cpuCores = root.cpuCores.map(() => ({
"usage": 0,
"freq_ghz": 0,
"history": []
}))
}
property var cpuCoreMaxFreq: []
property var cpuCoreTypes: []

View file

@ -39,11 +39,16 @@ M.BarSection {
}
property bool _osdActive: false
property bool _ready: false
readonly property bool _anyHover: root._hovered || hoverPanel.panelHovered
readonly property bool _showPanel: _anyHover || _osdActive
onVolumeChanged: _flashPanel()
onMutedChanged: _flashPanel()
Component.onCompleted: _ready = true
onVolumeChanged: if (_ready)
_flashPanel()
onMutedChanged: if (_ready)
_flashPanel()
function _flashPanel() {
_osdActive = true;