windows pos & size in prefs

This commit is contained in:
STEINNI
2025-10-08 12:51:01 +00:00
parent db3d10539a
commit 93de6045e3
5 changed files with 78 additions and 47 deletions
+30 -30
View File
@@ -190,7 +190,6 @@ class myUser extends app.LoadedClasses.User {
}
loadPreferences() {
console.log('Loading prefs...')
this.model.getPreferences().then(settings => {
console.log("Prefs received from bus:", settings)
this.preferences = settings.value || {}
@@ -198,7 +197,6 @@ class myUser extends app.LoadedClasses.User {
}
savePreferences() {
console.log('Saving prefs...')
this.model.setPreferences({
key: `${this.identity.uuid}:userPrefs`,
value: this.preferences
@@ -207,47 +205,49 @@ class myUser extends app.LoadedClasses.User {
getPreference(path) {
let value = null;
if(app.MessageBus) {
let segments = path.split('.');
let pointer = this.preferences;
if(pointer) {
for(let segment of segments) {
if(pointer[segment]) {
if(typeof pointer[segment] == 'object') {
pointer = pointer[segment];
} else {
value = pointer[segment];
}
let segments = path.split('.');
let pointer = this.preferences;
if(pointer) {
for(let segment of segments) {
if(pointer[segment]) {
if(typeof pointer[segment] == 'object') {
pointer = pointer[segment];
} else {
break;
value = pointer[segment];
}
} else {
break;
}
}
}
return value;
}
setPreference(path, value) {
if(app.MessageBus) {
let segments = path.split('.');
let pointer = this.preferences;
for(let i = 0; i < segments.length - 1; i++) {
let segment = segments[i];
if(!pointer[segment]) {
pointer[segment] = {};
}
pointer = pointer[segment];
const segments = path.split('.')
let pointer = this.preferences
for (let i = 0; i < segments.length - 1; i++) {
const segment = segments[i]
if (!pointer[segment] || typeof pointer[segment] !== 'object') {
pointer[segment] = {}
}
pointer[segments[segments.length - 1]] = value;
pointer = pointer[segment]
}
this.savePreferences();
const lastKey = segments.at(-1)
const existing = pointer[lastKey]
if ((typeof(value) == 'object') && (value !== null) && (typeof(existing) == 'object') && (existing !== null)) { // merge instead of overwrite
Object.assign(existing, value)
} else {
pointer[lastKey] = value
}
this.savePreferences()
}
}
app.registerClass('User', myUser, true); // for Sparc to use