Merge settings window to main #23
@@ -4,11 +4,13 @@ pragma ComponentBehavior: Bound
|
||||
import QtQuick
|
||||
import Quickshell
|
||||
import Quickshell.Io
|
||||
import qs.Paths
|
||||
|
||||
Singleton {
|
||||
id: root
|
||||
|
||||
property int availableUpdates: 0
|
||||
property bool loaded
|
||||
property double now: Date.now()
|
||||
property var updates: ({})
|
||||
|
||||
@@ -30,12 +32,23 @@ Singleton {
|
||||
return Qt.formatDateTime(new Date(timestamp), "dd hh:mm");
|
||||
}
|
||||
|
||||
onUpdatesChanged: {
|
||||
if (!root.loaded)
|
||||
return;
|
||||
|
||||
saveTimer.restart();
|
||||
availableUpdates = Object.keys(updates).length;
|
||||
}
|
||||
|
||||
Timer {
|
||||
interval: 1
|
||||
repeat: true
|
||||
running: true
|
||||
|
||||
onTriggered: {
|
||||
if (!root.loaded)
|
||||
return;
|
||||
|
||||
updatesProc.running = true;
|
||||
interval = 5000;
|
||||
}
|
||||
@@ -71,4 +84,40 @@ Singleton {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: saveTimer
|
||||
|
||||
interval: 1000
|
||||
|
||||
onTriggered: storage.setText(JSON.stringify(root.updates))
|
||||
}
|
||||
|
||||
FileView {
|
||||
id: storage
|
||||
|
||||
path: `${Paths.state}/updates.json`
|
||||
|
||||
onLoadFailed: err => {
|
||||
if (err === FileViewError.FileNotFound) {
|
||||
root.updates = ({});
|
||||
root.loaded = true;
|
||||
setText("{}");
|
||||
return;
|
||||
}
|
||||
|
||||
root.updates = ({});
|
||||
root.loaded = true;
|
||||
}
|
||||
onLoaded: {
|
||||
try {
|
||||
const data = JSON.parse(text());
|
||||
root.updates = data && typeof data === "object" && !Array.isArray(data) ? data : {};
|
||||
} catch (e) {
|
||||
root.updates = ({});
|
||||
}
|
||||
|
||||
root.loaded = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user