Preferences: Make _syncToPrefOnModify work like _syncFromPref
This commit is contained in:
parent
dbc8b9bfed
commit
1463b58b5b
1 changed files with 14 additions and 9 deletions
|
@ -422,12 +422,16 @@ ${str}
|
||||||
elem.dispatchEvent(new Event('syncfrompreference'));
|
elem.dispatchEvent(new Event('syncfrompreference'));
|
||||||
},
|
},
|
||||||
|
|
||||||
_syncToPrefOnModify(event) {
|
_syncToPrefOnModify(elem, preference) {
|
||||||
if (event.currentTarget.getAttribute('preference')) {
|
let value;
|
||||||
let value = this._useChecked(event.currentTarget) ? event.currentTarget.checked : event.currentTarget.value;
|
if (this._useChecked(elem)) {
|
||||||
event.currentTarget.dispatchEvent(new Event('synctopreference'));
|
value = elem.checked;
|
||||||
Zotero.Prefs.set(event.currentTarget.getAttribute('preference'), value, true);
|
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
value = elem.value;
|
||||||
|
}
|
||||||
|
elem.dispatchEvent(new Event('synctopreference'));
|
||||||
|
Zotero.Prefs.set(preference, value, true);
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -494,13 +498,14 @@ ${str}
|
||||||
this._mutationObservers.set(elem, mutationObserver);
|
this._mutationObservers.set(elem, mutationObserver);
|
||||||
}
|
}
|
||||||
|
|
||||||
elem.addEventListener('command', this._syncToPrefOnModify.bind(this));
|
let syncToPref = () => this._syncToPrefOnModify(elem, preference);
|
||||||
elem.addEventListener('input', this._syncToPrefOnModify.bind(this));
|
elem.addEventListener('command', syncToPref);
|
||||||
elem.addEventListener('change', this._syncToPrefOnModify.bind(this));
|
elem.addEventListener('input', syncToPref);
|
||||||
|
elem.addEventListener('change', syncToPref);
|
||||||
|
|
||||||
// Set timeout before populating the value so the pane can add listeners first
|
// Set timeout before populating the value so the pane can add listeners first
|
||||||
return new Promise(resolve => setTimeout(() => {
|
return new Promise(resolve => setTimeout(() => {
|
||||||
this._syncFromPref(elem, elem.getAttribute('preference'), true);
|
this._syncFromPref(elem, preference, true);
|
||||||
resolve();
|
resolve();
|
||||||
}));
|
}));
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue