diff options
| -rw-r--r-- | services/Notifs.qml | 38 |
1 files changed, 27 insertions, 11 deletions
diff --git a/services/Notifs.qml b/services/Notifs.qml index 2ebc32d..aa440fe 100644 --- a/services/Notifs.qml +++ b/services/Notifs.qml @@ -146,21 +146,37 @@ Singleton { property var locks: new Set() property date time: new Date() - readonly property string timeStr: { - const diff = Time.date.getTime() - time.getTime(); + property string timeStr: qsTr("now") + + function updateTimeStr(): void { + const diff = Date.now() - time.getTime(); const m = Math.floor(diff / 60000); - if (m < 1) - return qsTr("now"); + if (m < 1) { + timeStr = qsTr("now"); + timeStrTimer.interval = 5000; + } else { + const h = Math.floor(m / 60); + const d = Math.floor(h / 24); - const h = Math.floor(m / 60); - const d = Math.floor(h / 24); + if (d > 0) { + timeStr = `${d}d`; + timeStrTimer.interval = 3600000; + } else if (h > 0) { + timeStr = `${h}h`; + timeStrTimer.interval = 300000; + } else { + timeStr = `${m}m`; + timeStrTimer.interval = m < 10 ? 30000 : 60000; + } + } + } - if (d > 0) - return `${d}d`; - if (h > 0) - return `${h}h`; - return `${m}m`; + readonly property Timer timeStrTimer: Timer { + running: !notif.closed + repeat: true + interval: 5000 + onTriggered: notif.updateTimeStr() } property Notification notification |