diff --git a/chrome/content/zotero/preferences/preferences.js b/chrome/content/zotero/preferences/preferences.js index 41c81ca85..2ff53d787 100644 --- 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 index 3ea24852a..da995dd0e 100644 --- a/chrome/content/zotero/preferences/preferences.xul +++ b/chrome/content/zotero/preferences/preferences.xul @@ -42,11 +42,13 @@ To add a new preference: --> + windowtype="zotero:pref" ondialoghelp="Zotero_Preferences.openHelpLink()" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + image="chrome://zotero/skin/prefs-general.png" + helpTopic="general"> @@ -156,7 +158,8 @@ To add a new preference: + image="chrome://zotero/skin/prefs-sync.png" + helpTopic="sync"> @@ -403,7 +406,8 @@ To add a new preference: + image="chrome://zotero/skin/prefs-search.png" + helpTopic="search"> @@ -492,7 +496,8 @@ To add a new preference: + image="chrome://zotero/skin/prefs-export.png" + helpTopic="export"> @@ -557,7 +562,8 @@ To add a new preference: + image="chrome://zotero/skin/prefs-styles.png" + helpTopic="cite"> @@ -616,7 +622,8 @@ To add a new preference: + image="chrome://zotero/skin/prefs-keys.png" + helpTopic="shortcut_keys"> @@ -711,7 +718,8 @@ To add a new preference: + image="chrome://zotero/skin/prefs-advanced.png" + helpTopic="advanced"> diff --git a/chrome/content/zotero/preferences/preferences_firefox.xul b/chrome/content/zotero/preferences/preferences_firefox.xul index 51b9c1bd1..90aa7f9d8 100644 --- 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: + image="chrome://zotero/skin/prefs-proxies.png" position="6" + helpTopic="proxies"> &zotero.preferences.proxies.desc_before_link;