even more deltarune
This commit is contained in:
@@ -19,9 +19,16 @@ QtObject {
|
||||
property bool appUsageLoaded: false
|
||||
property var windowRequests: ({})
|
||||
property var quickSettingsPayload: ({})
|
||||
property var globals: ({
|
||||
"notifications.stackPreviewEnabled": true
|
||||
property var defaultGlobals: ({
|
||||
"notifications.stackPreviewEnabled": true,
|
||||
"shell.mprisOverlayEnabled": true
|
||||
})
|
||||
property var globals: Object.assign({}, defaultGlobals)
|
||||
property string globalsPath: {
|
||||
var homeDir = Quickshell.env("HOME");
|
||||
return homeDir ? homeDir + "/.local/share/deltarunequickshell/globals.json" : "";
|
||||
}
|
||||
property bool globalsLoaded: false
|
||||
|
||||
signal shellOpened
|
||||
signal shellClosed
|
||||
@@ -175,7 +182,17 @@ QtObject {
|
||||
appUsageFile.writeAdapter();
|
||||
}
|
||||
|
||||
function persistGlobals() {
|
||||
if (!globalsLoaded)
|
||||
return;
|
||||
if (!globalsFile || !globalsAdapter)
|
||||
return;
|
||||
globalsAdapter.values = globals || ({});
|
||||
globalsFile.writeAdapter();
|
||||
}
|
||||
|
||||
onAppUsageCountsChanged: persistAppUsage()
|
||||
onGlobalsChanged: persistGlobals()
|
||||
|
||||
property FileView appUsageFile: FileView {
|
||||
id: appUsageFile
|
||||
@@ -199,6 +216,28 @@ QtObject {
|
||||
}
|
||||
}
|
||||
|
||||
property FileView globalsFile: FileView {
|
||||
id: globalsFile
|
||||
path: manager.globalsPath
|
||||
watchChanges: true
|
||||
onFileChanged: reload()
|
||||
onLoaded: {
|
||||
var loaded = globalsAdapter && globalsAdapter.values ? globalsAdapter.values : ({});
|
||||
manager.globals = Object.assign({}, manager.defaultGlobals, loaded);
|
||||
manager.globalsLoaded = true;
|
||||
}
|
||||
onLoadFailed: {
|
||||
manager.globals = Object.assign({}, manager.defaultGlobals);
|
||||
manager.globalsLoaded = true;
|
||||
manager.persistGlobals();
|
||||
}
|
||||
|
||||
JsonAdapter {
|
||||
id: globalsAdapter
|
||||
property var values: ({})
|
||||
}
|
||||
}
|
||||
|
||||
function setGlobal(key, value) {
|
||||
var updated = Object.assign({}, globals);
|
||||
updated[key] = value;
|
||||
@@ -206,7 +245,7 @@ QtObject {
|
||||
}
|
||||
|
||||
function global(key, defaultValue) {
|
||||
return globals.hasOwnProperty(key) ? globals[key] : defaultValue;
|
||||
return Object.prototype.hasOwnProperty.call(globals, key) ? globals[key] : defaultValue;
|
||||
}
|
||||
|
||||
function notificationStackPreviewEnabled() {
|
||||
@@ -220,4 +259,16 @@ QtObject {
|
||||
function toggleNotificationStackPreviewEnabled() {
|
||||
setNotificationStackPreviewEnabled(!notificationStackPreviewEnabled());
|
||||
}
|
||||
|
||||
function mprisOverlayEnabled() {
|
||||
return Boolean(global("shell.mprisOverlayEnabled", true));
|
||||
}
|
||||
|
||||
function setMprisOverlayEnabled(enabled) {
|
||||
setGlobal("shell.mprisOverlayEnabled", Boolean(enabled));
|
||||
}
|
||||
|
||||
function toggleMprisOverlayEnabled() {
|
||||
setMprisOverlayEnabled(!mprisOverlayEnabled());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user