Ensure settings exist for all installed dictionaries (#922)

This commit is contained in:
toasted-nutbread 2020-10-14 19:38:50 -04:00 committed by GitHub
parent 51904761ce
commit e6a1bcc0f5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -196,6 +196,7 @@ class DictionaryController {
} }
this._dictionaryEntries = []; this._dictionaryEntries = [];
await this._ensureDictionarySettings(dictionaries);
for (const dictionary of dictionaries) { for (const dictionary of dictionaries) {
this._createDictionaryEntry(dictionary); this._createDictionaryEntry(dictionary);
} }
@ -393,4 +394,32 @@ class DictionaryController {
} }
await this._settingsController.modifyGlobalSettings(targets); await this._settingsController.modifyGlobalSettings(targets);
} }
async _ensureDictionarySettings(dictionaries2) {
const optionsFull = await this._settingsController.getOptionsFull();
const {profiles} = optionsFull;
const targets = [];
for (const {title} of dictionaries2) {
for (let i = 0, ii = profiles.length; i < ii; ++i) {
const {options: {dictionaries: dictionaryOptions}} = profiles[i];
if (Object.prototype.hasOwnProperty.call(dictionaryOptions, title)) { continue; }
const path = ObjectPropertyAccessor.getPathString(['profiles', i, 'options', 'dictionaries', title]);
targets.push({
action: 'set',
path,
value: {
enabled: false,
allowSecondarySearches: false,
priority: 0
}
});
}
}
if (targets.length > 0) {
const r = await this._settingsController.modifyGlobalSettings(targets);
console.log(r);
}
}
} }