www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | Submodules | README | LICENSE

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:
Mchrome/content/zotero/preferences/preferences.js | 38+++++++++++++++++++++++++++++++++++++-
Mchrome/content/zotero/preferences/preferences.xul | 24++++++++++++++++--------
Mchrome/content/zotero/preferences/preferences_firefox.xul | 3++-
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"