fix: default prefs
see https://www.zotero.org/support/dev/zotero_7_for_developers#default_preferences
This commit is contained in:
parent
e6aa4f1b6b
commit
623c3830f5
38
addon/bootstrap.js
vendored
38
addon/bootstrap.js
vendored
@ -64,6 +64,11 @@ function install(data, reason) {}
|
||||
async function startup({ id, version, resourceURI, rootURI }, reason) {
|
||||
await waitForZotero();
|
||||
|
||||
// String 'rootURI' introduced in Zotero 7
|
||||
if (!rootURI) {
|
||||
rootURI = resourceURI.spec;
|
||||
}
|
||||
|
||||
if (Zotero.platformMajorVersion >= 102) {
|
||||
var aomStartup = Components.classes[
|
||||
"@mozilla.org/addons/addon-manager-startup;1"
|
||||
@ -74,11 +79,10 @@ async function startup({ id, version, resourceURI, rootURI }, reason) {
|
||||
["locale", "__addonRef__", "en-US", rootURI + "chrome/locale/en-US/"],
|
||||
["locale", "__addonRef__", "zh-CN", rootURI + "chrome/locale/zh-CN/"],
|
||||
]);
|
||||
}
|
||||
|
||||
// String 'rootURI' introduced in Zotero 7
|
||||
if (!rootURI) {
|
||||
rootURI = resourceURI.spec;
|
||||
} else {
|
||||
if (reason == ADDON_INSTALL || reason == ADDON_ENABLE) {
|
||||
setDefaultPrefs(rootURI);
|
||||
}
|
||||
}
|
||||
|
||||
// Global variables for plugin code
|
||||
@ -117,3 +121,27 @@ function shutdown({ id, version, resourceURI, rootURI }, reason) {
|
||||
}
|
||||
|
||||
function uninstall(data, reason) {}
|
||||
|
||||
// Loads default preferences from defaults/preferences/prefs.js in Zotero 6
|
||||
function setDefaultPrefs(rootURI) {
|
||||
var branch = Services.prefs.getDefaultBranch("");
|
||||
var obj = {
|
||||
pref(pref, value) {
|
||||
switch (typeof value) {
|
||||
case "boolean":
|
||||
branch.setBoolPref(pref, value);
|
||||
break;
|
||||
case "string":
|
||||
branch.setStringPref(pref, value);
|
||||
break;
|
||||
case "number":
|
||||
branch.setIntPref(pref, value);
|
||||
break;
|
||||
default:
|
||||
Zotero.logError(`Invalid type '${typeof value}' for pref '${pref}'`);
|
||||
}
|
||||
},
|
||||
};
|
||||
Zotero.getMainWindow().console.log(rootURI + "prefs.js");
|
||||
Services.scriptloader.loadSubScript(rootURI + "prefs.js", obj);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user