commit 0ae175127bfb5dd1eec225eef363862b908c87a0
parent 204f9563c6bced5b5988549554c762004b157887
Author: Dan Stillman <dstillman@zotero.org>
Date: Thu, 5 Jan 2012 19:32:20 -0500
Add help button to prefs pointing to documentation
Diffstat:
3 files changed, 55 insertions(+), 10 deletions(-)
diff --git a/chrome/content/zotero/preferences/preferences.js b/chrome/content/zotero/preferences/preferences.js
@@ -30,9 +30,45 @@ var _io = {};
var Zotero_Preferences = {
-
onUnload: function () {
Zotero_Preferences.Debug_Output.onUnload();
+ },
+
+ openHelpLink: function () {
+ var url = "http://www.zotero.org/support/preferences/";
+ var helpTopic = document.getElementsByTagName("prefwindow")[0].currentPane.helpTopic;
+ url += helpTopic;
+
+ // Non-instantApply prefwindows are usually modal, so we can't open in the topmost window,
+ // since it's probably behind the window
+ var instantApply = Zotero.Prefs.get("browser.preferences.instantApply", true);
+
+ if (instantApply) {
+ window.opener.ZoteroPane_Local.loadURI(url, { shiftKey: true, metaKey: true });
+ }
+ else {
+ if (Zotero.isStandalone) {
+ var io = Components.classes['@mozilla.org/network/io-service;1']
+ .getService(Components.interfaces.nsIIOService);
+ var uri = io.newURI(url, null, null);
+ var handler = Components.classes['@mozilla.org/uriloader/external-protocol-service;1']
+ .getService(Components.interfaces.nsIExternalProtocolService)
+ .getProtocolHandlerInfo('http');
+ handler.preferredAction = Components.interfaces.nsIHandlerInfo.useSystemDefault;
+ handler.launchWithURI(uri, null);
+ }
+ else {
+ var ww = Components.classes["@mozilla.org/embedcomp/window-watcher;1"]
+ .getService(Components.interfaces.nsIWindowWatcher);
+ var win = ww.openWindow(
+ window,
+ url,
+ "helpWindow",
+ "chrome=no,menubar=yes,location=yes,toolbar=yes,personalbar=yes,resizable=yes,scrollbars=yes,status=yes",
+ null
+ );
+ }
+ }
}
}
diff --git a/chrome/content/zotero/preferences/preferences.xul b/chrome/content/zotero/preferences/preferences.xul
@@ -42,11 +42,13 @@ To add a new preference:
-->
<prefwindow id="zotero-prefs" title="&zotero.preferences.title;" onload="init()" onunload="Zotero_Preferences.onUnload()"
- windowtype="zotero:pref" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
+ windowtype="zotero:pref" ondialoghelp="Zotero_Preferences.openHelpLink()"
+ xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<prefpane id="zotero-prefpane-general"
label="&zotero.preferences.prefpane.general;"
- image="chrome://zotero/skin/prefs-general.png">
+ image="chrome://zotero/skin/prefs-general.png"
+ helpTopic="general">
<preferences id="zotero-prefpane-general-preferences">
<preference id="pref-fontSize" name="extensions.zotero.fontSize" type="string"/>
<preference id="pref-noteFontSize" name="extensions.zotero.note.fontSize" type="string"/>
@@ -156,7 +158,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-sync"
label="&zotero.preferences.prefpane.sync;"
onpaneload="document.getElementById('sync-password').value = Zotero.Sync.Server.password; document.getElementById('storage-password').value = Zotero.Sync.Storage.password;"
- image="chrome://zotero/skin/prefs-sync.png">
+ image="chrome://zotero/skin/prefs-sync.png"
+ helpTopic="sync">
<preferences>
<preference id="pref-sync-autosync" name="extensions.zotero.sync.autoSync" type="bool"/>
<preference id="pref-sync-username" name="extensions.zotero.sync.server.username" type="string" instantApply="true"/>
@@ -403,7 +406,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-search"
label="&zotero.preferences.prefpane.search;"
onpaneload="updateIndexStats()"
- image="chrome://zotero/skin/prefs-search.png">
+ image="chrome://zotero/skin/prefs-search.png"
+ helpTopic="search">
<preferences>
<preference id="pref-fulltext-textMaxLength" name="extensions.zotero.fulltext.textMaxLength" type="int"/>
<preference id="pref-fulltext-pdfmaxpages" name="extensions.zotero.fulltext.pdfMaxPages" type="int"/>
@@ -492,7 +496,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-export"
label="&zotero.preferences.prefpane.export;"
- image="chrome://zotero/skin/prefs-export.png">
+ image="chrome://zotero/skin/prefs-export.png"
+ helpTopic="export">
<preferences>
<preference id="pref-quickCopy-setting" name="extensions.zotero.export.quickCopy.setting" type="string"/>
<preference id="pref-quickCopy-dragLimit" name="extensions.zotero.export.quickCopy.dragLimit" type="int"/>
@@ -557,7 +562,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-cite"
label="&zotero.preferences.prefpane.cite;"
- image="chrome://zotero/skin/prefs-styles.png">
+ image="chrome://zotero/skin/prefs-styles.png"
+ helpTopic="cite">
<preferences id="zotero-preferences-cite">
<preference id="pref-cite-citePaperJournalArticleURL" name="extensions.zotero.export.citePaperJournalArticleURL" type="bool"/>
@@ -616,7 +622,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-keys"
label="&zotero.preferences.prefpane.keys;"
- image="chrome://zotero/skin/prefs-keys.png">
+ image="chrome://zotero/skin/prefs-keys.png"
+ helpTopic="shortcut_keys">
<preferences>
<preference id="pref-keys-openZotero" name="extensions.zotero.keys.openZotero" type="string"/>
<preference id="pref-keys-toggleFullscreen" name="extensions.zotero.keys.toggleFullscreen" type="string"/>
@@ -711,7 +718,8 @@ To add a new preference:
<prefpane id="zotero-prefpane-advanced"
label="&zotero.preferences.prefpane.advanced;"
- image="chrome://zotero/skin/prefs-advanced.png">
+ image="chrome://zotero/skin/prefs-advanced.png"
+ helpTopic="advanced">
<preferences>
<preference id="pref-useDataDir" name="extensions.zotero.useDataDir" type="bool"/>
<preference id="pref-dataDir" name="extensions.zotero.dataDir" type="string"/>
diff --git a/chrome/content/zotero/preferences/preferences_firefox.xul b/chrome/content/zotero/preferences/preferences_firefox.xul
@@ -78,7 +78,8 @@ To add a new preference:
</prefpane>
<prefpane id="zotero-prefpane-proxies"
label="&zotero.preferences.prefpane.proxies;"
- image="chrome://zotero/skin/prefs-proxies.png" position="6">
+ image="chrome://zotero/skin/prefs-proxies.png" position="6"
+ helpTopic="proxies">
<description width="45em" style="font-size: 12px">
&zotero.preferences.proxies.desc_before_link;
<label class="zotero-text-link" href="http://www.zotero.org/support/proxies"