Bug 394522: fix browser pane issues; r=Callek, sr=neil

This commit is contained in:
mnyromyr%tprac.de 2008-02-07 22:57:43 +00:00
Родитель 041c4d012c
Коммит 06fd99065e
15 изменённых файлов: 419 добавлений и 300 удалений

Просмотреть файл

@ -109,13 +109,7 @@
<content dlgbuttons="accept,cancel" persist="lastSelected screenX screenY"
closebuttonlabel="&preferencesCloseButton.label;"
closebuttonaccesskey="&preferencesCloseButton.accesskey;"
role="dialog"
#ifdef XP_WIN
title="&preferencesDefaultTitleWin.title;"
#else
title="&preferencesDefaultTitleMac.title;"
#endif
>
role="dialog">
<xul:radiogroup anonid="selector" orient="horizontal" class="paneSelector chromeclass-toolbar"
role="listbox"/> <!-- Expose to accessibility APIs as a listbox -->
<xul:hbox flex="1" class="paneDeckContainer">

Просмотреть файл

@ -192,15 +192,6 @@ comm.jar:
content/communicator/pref/pref-tabs.xul (pref/pref-tabs.xul)
content/communicator/pref/pref-winhooks.js (pref/pref-winhooks.js)
content/communicator/pref/pref-winhooks.xul (pref/pref-winhooks.xul)
#ifdef XP_MACOSX
content/communicator/pref/platformPrefOverlay.xul (pref/mac/platformPrefOverlay.xul)
#else
#ifdef XP_WIN32
content/communicator/pref/platformPrefOverlay.xul (pref/win/platformPrefOverlay.xul)
#else
content/communicator/pref/platformPrefOverlay.xul (pref/unix/platformPrefOverlay.xul)
#endif
#endif
content/communicator/profile/profileSelection.js (profile/profileSelection.js)
content/communicator/profile/profileSelection.xul (profile/profileSelection.xul)
content/communicator/related/related-panel.js (related/related-panel.js)

Просмотреть файл

Просмотреть файл

@ -44,13 +44,57 @@
// The contents of this file will be loaded into the scope of the object
// <prefpane id="navigator_pane">!
// platform integration
const PFINT_NOT_DEFAULT = 0;
const PFINT_DEFAULT = 1;
const PFINT_PENDING = 2;
// put "global" definitions here for easy reference
var gHomePageGroupIsSet = "";
var gDefaultPage = "";
var gHomePages = [];
var gDefaultHomePage = "";
var gHomePagePrefPeak = 0;
var gPreferences = null;
function GetHomePageValue()
// <preferences> access helper methods
function GetHomePagePrefCount()
{
return document.getElementById("browser.startup.homepage.count").value;
}
function SetHomePagePrefCount(aCount)
{
document.getElementById("browser.startup.homepage.count").value = aCount;
}
function GetHomePagePrefName(aIndex)
{
var prefname = "browser.startup.homepage";
if (aIndex > 0)
prefname += "." + aIndex;
return prefname;
}
function GetHomePagePref(aIndex)
{
// return the <preference> at aIndex
return document.getElementById(GetHomePagePrefName(aIndex));
}
function AddHomePagePref(aIndex)
{
// create new <preference> for aIndex
var pref = document.createElement("preference");
var prefname = GetHomePagePrefName(aIndex);
pref.setAttribute("id", prefname);
pref.setAttribute("name", prefname);
pref.setAttribute("type", "wstring");
gPreferences.appendChild(pref);
return pref;
}
// homepage group textbox helper methods
function GetHomePageGroup()
{
return document.getElementById("browserStartupHomepage").value;
}
@ -60,21 +104,22 @@ function SetHomePageValue(aValue)
document.getElementById("browserStartupHomepage").value = aValue;
}
// helper methods for reading current page URIs
function GetMostRecentBrowser()
{
var windowManager = Components.classes["@mozilla.org/appshell/window-mediator;1"]
.getService(Components.interfaces.nsIWindowMediator);
var browserWindow = windowManager.getMostRecentWindow("navigator:browser");
return browserWindow && browserWindow.document.getElementById("content");
return browserWindow && browserWindow.getBrowser();
}
function GetCurrentPage()
{
var tabbrowser = GetMostRecentBrowser();
return tabbrowser && tabbrowser.currentURI.spec;
return tabbrowser && tabbrowser.currentURI.spec || ""; // ensure string
}
function GetCurrentPageGroup()
function GetCurrentGroup()
{
var uris = [];
var tabbrowser = GetMostRecentBrowser();
@ -85,63 +130,103 @@ function GetCurrentPageGroup()
for (var i = 0; i < browsersLen; ++i)
uris[i] = browsers[i].currentURI.spec;
}
return uris;
return uris.join("\n");
}
// synchronize button states with current input
function CanonifyURLList(aList)
{
return (aList + "\n").replace(/\n+/g, "\n");
}
function UpdateHomePageButtons()
{
var homepage = GetHomePageValue();
var homePageGroup = CanonifyURLList(GetHomePageGroup());
var currentPage = CanonifyURLList(GetCurrentPage());
var currentGroup = CanonifyURLList(GetCurrentGroup());
// disable "current page" button if current page is already the homepage
var currentPageButton = document.getElementById("browserUseCurrent");
currentPageButton.disabled = (homepage == GetCurrentPage());
currentPageButton.disabled = (homePageGroup == currentPage) ||
(currentPage == "\n");
// disable "default page" button if default page is already the homepage
var defaultPageButton = document.getElementById("browserUseDefault");
defaultPageButton.disabled = (homepage == gDefaultPage);
// disable "current group" button if current group already set or no group
var currentGroupButton = document.getElementById("browserUseCurrentGroup");
currentGroupButton.disabled = (homePageGroup == currentGroup) ||
(currentGroup == currentPage);
// homePages.length == 1 if:
// - we're called from startup and there's one homepage
// - we're called from "current page" or "choose file"
// - the user typed something in the location field
// in those cases we only want to enable the button if:
// - there's more than one tab in the most recent browser
// otherwise we have a group of homepages:
// - we're called from startup and there's a group of homepages
// - we're called from "current group"
// in those cases we only want to enable the button if:
// - there's more than one tab in the most recent browser and
// the current group doesn't match the group of homepages
var enabled = false;
if (gHomePages.length == 1)
// disable "restore" button if homepage hasn't changed
var restoreButton = document.getElementById("browserUseDefault");
restoreButton.disabled = (homePageGroup == gDefaultHomePage);
}
function UpdateHomePagePrefs()
{
// update the list of <preference>s to the current settings
var newCount = 0; // current number of homepages
var homePageGroup = CanonifyURLList(GetHomePageGroup()).split("\n");
if (homePageGroup[0])
{
var browser = GetMostRecentBrowser();
enabled = !!browser && (browser.browsers.length > 1);
}
else
{
var currentURIs = GetCurrentPageGroup();
if (currentURIs.length == gHomePages.length)
// we have at least one homepage
// (the last index is always empty due to canonification)
newCount = homePageGroup.length - 1
for (var i = 0; i < newCount; ++i)
{
for (var i = 0; !enabled && (i < gHomePages.length); ++i)
{
if (gHomePages[i] != currentURIs[i])
enabled = true;
}
}
else if (currentURIs.length > 1)
{
enabled = true;
var pref = GetHomePagePref(i) || AddHomePagePref(i);
pref.value = homePageGroup[i];
}
}
var currentPageGroupButton = document.getElementById("browserUseCurrentGroup");
currentPageGroupButton.disabled = !enabled;
// work around bug 410562:
// reset unneeded preferences on dialogaccept only
// update pref count watermark before setting new number of homepages
var alreadyRequested = (gHomePagePrefPeak > 0);
var oldCount = GetHomePagePrefCount();
if (gHomePagePrefPeak < oldCount)
gHomePagePrefPeak = oldCount;
SetHomePagePrefCount(newCount);
var needCleanup = (newCount < gHomePagePrefPeak);
if (document.documentElement.instantApply)
{
// throw away unneeded preferences now
if (needCleanup)
HomePagePrefCleanup();
}
else if (needCleanup != alreadyRequested)
{
// cleanup necessity changed
if (needCleanup)
{
// register OK handler for the capturing phase
window.addEventListener("dialogaccept", this.HomePagePrefCleanup, true);
}
else
{
// no cleanup necessary, remove OK handler
window.removeEventListener("dialogaccept", this.HomePagePrefCleanup, true);
}
}
}
function HomePagePrefCleanup()
{
// remove the old user prefs values that we didn't overwrite
var count = GetHomePagePrefCount();
for (var j = count; j < gHomePagePrefPeak; ++j)
{
// clear <preference>
var pref = GetHomePagePref(j);
pref.reset();
pref.parentNode.removeChild(pref);
}
gHomePagePrefPeak = 0; // cleanup done
}
function UpdateHomePageListFromInput()
{
gHomePages = [GetHomePageValue()];
UpdateHomePagePrefs();
UpdateHomePageButtons();
}
@ -175,134 +260,155 @@ function SetHomePageToCurrentPage()
UpdateHomePageList(GetCurrentPage());
}
function SetHomePageToDefaultPage()
{
UpdateHomePageList(gDefaultPage);
}
function SetHomePageToCurrentGroup()
{
var uris = GetCurrentPageGroup();
if (uris.length > 0)
{
SetHomePageValue(gHomePageGroupIsSet);
gHomePages = uris;
UpdateHomePageButtons();
}
UpdateHomePageList(GetCurrentGroup());
}
function SetHomePageToDefaultPage()
{
UpdateHomePageList(gDefaultHomePage);
}
function Startup()
{
// initialize global strings
gHomePageGroupIsSet = document.getElementById("bundle_prefutilities")
.getString("groupIsSet");
gDefaultPage = document.getElementById("browser.startup.homepage").value;
// initialize behaviourDeck
SetPageAccessKeys(document.getElementById("behaviourDeck").firstChild);
// homepage groups can have an arbitrary number of preferences,
// homepage groups can have an arbitrary number of <preference>s,
// thus we create them manually here
var uris = [];
var preferences = document.getElementById("navigator_preferences");
var count = document.getElementById("browser.startup.homepage.count").value;
uris[0] = gDefaultPage;
for (var i = 1; i < count; ++i)
gPreferences = document.getElementById("navigator_preferences");
var homePageGroup = "";
var count = GetHomePagePrefCount();
for (var i = 0; i < count; ++i)
{
// add new <preference>
var pref = document.createElement("preference");
var prefname = "browser.startup.homepage." + i;
pref.setAttribute("id", prefname);
pref.setAttribute("name", prefname);
pref.setAttribute("type", "string");
preferences.appendChild(pref);
// remember its URIs
try
{
uris[i] = pref.value;
}
catch(e) {}
var pref = AddHomePagePref(i);
homePageGroup += pref.value + "\n";
}
gHomePages = uris;
if (uris.length == 1)
SetHomePageValue(uris[0]);
else
SetHomePageValue(gHomePageGroupIsSet);
gDefaultHomePage = CanonifyURLList(GetHomePagePref(0).defaultValue);
SetHomePageValue(homePageGroup);
UpdateHomePageButtons();
// register our OK handler for the capturing(!) phase
window.addEventListener("dialogaccept", this.OnDialogAccept, true);
}
function OnDialogAccept()
{
// OK could have been hit from another pane,
// so we need to get at our data the long but safer way
var navigator_pane = document.getElementById("navigator_pane");
// toolkit will save all our data for, we just need to make sure it's set
var preferences = document.getElementById("navigator_preferences");
var uris = navigator_pane.gHomePages;
var uriCount = uris.length;
if (uriCount > 0)
document.getElementById("browser.startup.homepage").value = uris[0];
var i = 1;
for (; i < uriCount; ++i)
{
// store current value
var prefname = "browser.startup.homepage." + i;
var pref = document.getElementById(prefname);
if (!pref)
{
pref = document.createElement("preference");
pref.setAttribute("id", prefname);
pref.setAttribute("name", prefname);
pref.setAttribute("type", "string");
preferences.appendChild(pref);
}
pref.value = uris[i];
}
// remove the old user prefs values that we didn't overwrite
var countPref = document.getElementById("browser.startup.homepage.count");
var oldCount = countPref.value;
for (; i < oldCount; ++i)
{
// clear old pref
var prefname = "browser.startup.homepage." + i;
var pref = document.getElementById(prefname);
if (pref)
{
pref.reset();
pref.parentNode.removeChild(pref);
}
}
countPref.value = uris.length;
}
// the following functions may seem weird, but they are needed to avoid
// accesskey clashes with hidden deck panes
function SetPageAccessKeys(aGroup)
{
var nodes = aGroup.childNodes;
for (var i = 0; i < nodes.length; ++i)
nodes[i].accessKey = nodes[i].getAttribute("ak");
}
function RemovePageAccessKeys(aGroup)
{
var nodes = aGroup.childNodes;
for (var i = 0; i < nodes.length; ++i)
nodes[i].accessKey = '';
// platform integration
InitPlatformIntegration();
}
function SwitchPage(aIndex)
{
var deck = document.getElementById("behaviourDeck");
RemovePageAccessKeys(deck.selectedPanel);
deck.selectedIndex = aIndex;
SetPageAccessKeys(deck.selectedPanel);
document.getElementById("behaviourDeck").selectedIndex = aIndex;
}
// platform integration
function ApplySetAsDefaultBrowser()
{
// In future, we will use the Shell Service here,
// for now, just use WinHooks.
window.gWinHooks.winhooks.settings = window.gWinHooks.prefs;
}
function UpdateDefaultBrowserGroup()
{
// set description and button state according to integration setting
var state = window.gWinHooks.state;
var desc = document.getElementById("defaultBrowserDesc");
desc.textContent = desc.getAttribute("desc" + state);
document.getElementById("defaultBrowserButton").disabled = (state != PFINT_NOT_DEFAULT);
}
function InitPlatformIntegration()
{
// In future, we will ask the Shell Service about platform integration here,
// for now, just check WinHooks.
var showDefaultBrowserGroup = /Win/.test(navigator.platform);
document.getElementById("defaultBrowserGroup").hidden = !showDefaultBrowserGroup;
if (!showDefaultBrowserGroup)
return;
// Determine if we have been selected as the default browser already, and
// enable/disable the "Set As Default" button accordingly.
// We store our state info in the same place as the code in pref-winhooks.js
// uses so that this panel and the Advanced/System panel are kept in sync.
if (!("gWinHooks" in window))
{
// Neither the Advanced/System panel nor this panel has appeared.
// Initialize the state information.
window.gWinHooks = {};
// Get winhooks service.
window.gWinHooks.winhooks = Components.classes["@mozilla.org/winhooks;1"]
.getService(Components.interfaces.nsIWindowsHooks);
// Extract current settings (these are what the user has checked on
// the Advanced/System panel).
window.gWinHooks.prefs = window.gWinHooks.winhooks.settings;
}
var winHooks = window.gWinHooks;
winHooks.state = PFINT_NOT_DEFAULT;
// Start by checking http/https/ftp and html/xhtml/xml.
var prefs = winHooks.prefs;
if (prefs.isHandlingHTTP &&
prefs.isHandlingHTTPS &&
prefs.isHandlingFTP &&
prefs.isHandlingHTML &&
prefs.isHandlingXHTML &&
prefs.isHandlingXML)
{
// The user *wants* us to be the default, so look if the registry matches.
// We test the registry settings using a scratch copy of the settings
// because we don't care about some of them, but we don't want to mess up
// the user's choices from the Advanced/System panel.
var testSettings = winHooks.winhooks.settings;
// Test that these are set.
testSettings.isHandlingHTTP = true;
testSettings.isHandlingHTTPS = true;
testSettings.isHandlingFTP = true;
testSettings.isHandlingHTML = true;
testSettings.isHandlingXHTML = true;
testSettings.isHandlingXML = true;
// Ignore the rest.
testSettings.isHandlingCHROME = false;
testSettings.isHandlingGOPHER = false;
testSettings.isHandlingJPEG = false;
testSettings.isHandlingGIF = false;
testSettings.isHandlingPNG = false;
testSettings.isHandlingBMP = false;
testSettings.isHandlingICO = false;
testSettings.isHandlingXUL = false;
// Now test whether the registry matches that.
if (testSettings.registryMatches)
winHooks.state = PFINT_DEFAULT;
}
UpdateDefaultBrowserGroup();
}
function SetAsDefaultBrowser()
{
// In future, we will use the Shell Service here,
// for now, just process WinHooks.
// Extract current settings (these are what the
// user has checked on the Advanced/System panel).
var settings = window.gWinHooks.prefs;
// Turn on all "default browser" settings.
settings.isHandlingHTTP = true;
settings.isHandlingHTTPS = true;
settings.isHandlingFTP = true;
settings.isHandlingHTML = true;
settings.isHandlingXHTML = true;
settings.isHandlingXML = true;
if (document.documentElement.instantApply)
{
window.gWinHooks.state = PFINT_DEFAULT;
ApplySetAsDefaultBrowser();
}
else
{
// register OK handler for the capturing phase
window.gWinHooks.state = PFINT_PENDING;
window.addEventListener("dialogaccept", this.ApplySetAsDefaultBrowser, true);
}
UpdateDefaultBrowserGroup();
}

Просмотреть файл

@ -39,7 +39,10 @@
-
- ***** END LICENSE BLOCK ***** -->
<!DOCTYPE page SYSTEM "chrome://communicator/locale/pref/pref-navigator.dtd" >
<!DOCTYPE overlay [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd"> %brandDTD;
<!ENTITY % navigatorDTD SYSTEM "chrome://communicator/locale/pref/pref-navigator.dtd"> %navigatorDTD;
]>
<overlay xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
<prefpane id="navigator_pane"
@ -56,12 +59,12 @@
<preference id="browser.tabs.loadOnNewTab"
name="browser.tabs.loadOnNewTab"
type="int"/>
<preference id="browser.startup.homepage"
name="browser.startup.homepage"
type="wstring"/>
<preference id="browser.startup.homepage.count"
name="browser.startup.homepage.count"
type="int"/>
<preference id="pref.browser.disable_button.default_browser"
name="pref.browser.disable_button.default_browser"
type="bool"/>
<preference id="pref.browser.homepage.disable_button.select_file"
name="pref.browser.homepage.disable_button.select_file"
type="bool"/>
@ -106,78 +109,112 @@
</caption>
<deck id="behaviourDeck" flex="1">
<radiogroup id="startupPage" preference="browser.startup.page">
<radio value="0" label="&blankPageRadio.label;" ak="&blankPageRadio.accesskey;"/>
<radio value="1" label="&homePageRadio.label;" ak="&homePageRadio.accesskey;"/>
<radio value="2" label="&lastPageRadio.label;" ak="&lastPageRadio.accesskey;"/>
<radio value="0"
label="&blankPageRadio.label;"
accesskey="&blankPageRadio.accesskey;"/>
<radio value="1"
label="&homePageRadio.label;"
accesskey="&homePageRadio.accesskey;"/>
<radio value="2"
label="&lastPageRadio.label;"
accesskey="&lastPageRadio.accesskey;"/>
</radiogroup>
<radiogroup id="newWinPage" preference="browser.windows.loadOnNewWindow">
<radio value="0" label="&blankPageRadio.label;" ak="&blankPageRadio.accesskey;"/>
<radio value="1" label="&homePageRadio.label;" ak="&homePageRadio.accesskey;"/>
<radio value="2" label="&lastPageRadio.label;" ak="&lastPageRadio.accesskey;"/>
<radio value="0"
label="&blankPageRadio.label;"
accesskey="&blankPageRadio.accesskey;"/>
<radio value="1"
label="&homePageRadio.label;"
accesskey="&homePageRadio.accesskey;"/>
<radio value="2"
label="&lastPageRadio.label;"
accesskey="&lastPageRadio.accesskey;"/>
</radiogroup>
<radiogroup id="newTabPage" preference="browser.tabs.loadOnNewTab">
<radio value="0" label="&blankPageRadio.label;" ak="&blankPageRadio.accesskey;"/>
<radio value="1" label="&homePageRadio.label;" ak="&homePageRadio.accesskey;"/>
<radio value="2" label="&lastPageRadio.label;" ak="&lastPageRadio.accesskey;"/>
<radio value="0"
label="&blankPageRadio.label;"
accesskey="&blankPageRadio.accesskey;"/>
<radio value="1"
label="&homePageRadio.label;"
accesskey="&homePageRadio.accesskey;"/>
<radio value="2"
label="&lastPageRadio.label;"
accesskey="&lastPageRadio.accesskey;"/>
</radiogroup>
</deck>
</groupbox>
<!-- default browser settings are shown only if supported by the platform -->
<groupbox id="defaultBrowserGroup" flex="1000" align="center" hidden="true">
<caption label="&defaultBrowserGroup.label;"/>
<!-- We have three use cases, identified by their index:
0: not already the default => button enabled
1: already the default => button disabled
2: user pushed button => button disabled with different text
-->
<description id="defaultBrowserDesc"
desc0="&makeDefaultText;"
desc1="&alreadyDefaultText;"
desc2="&defaultPendingText;"/>
<button id="defaultBrowserButton"
label="&defaultBrowserButton.label;"
accesskey="&defaultBrowserButton.accesskey;"
oncommand="SetAsDefaultBrowser()"
disabled="true"
preference="pref.browser.disable_button.default_browser"/>
</groupbox>
</hbox>
<!-- homepage specification -->
<groupbox>
<groupbox orient="horizontal">
<caption label="&header2.label;"/>
<vbox flex="1">
<description>&homePageIntro.label;</description>
<hbox align="center">
<label value="&location.label;"
accesskey="&location.accesskey;"
control="browserStartupHomepage"/>
<textbox id="browserStartupHomepage"
type="autocomplete" flex="1" class="uri-element"
autocompletesearch="history" timeout="50" maxrows="6"
oninput="UpdateHomePageListFromInput();"/>
<button label="&browseFile.label;"
accesskey="&browseFile.accesskey;"
oncommand="SelectFile();"
id="browserChooseFile"
preference="pref.browser.homepage.disable_button.select_file"/>
</hbox>
<hbox align="center" pack="end">
<button label="&useCurrent.label;" accesskey="&useCurrent.accesskey;"
oncommand="SetHomePageToCurrentPage();"
id="browserUseCurrent"
preference="pref.browser.homepage.disable_button.current_page"/>
<button label="&useCurrentGroup.label;" accesskey="&useCurrentGroup.accesskey;"
oncommand="SetHomePageToCurrentGroup();"
id="browserUseCurrentGroup"
preference="pref.browser.homepage.disable_button.current_group"/>
<button label="&useDefault.label;" accesskey="&useDefault.accesskey;"
oncommand="SetHomePageToDefaultPage();"
id="browserUseDefault"
preference="pref.browser.homepage.disable_button.default_page"/>
</hbox>
<textbox id="browserStartupHomepage" class="uri-element" flex="1"
multiline="true" wrap="off" timeout="500"
oninput="UpdateHomePageListFromInput();"/>
</vbox>
<vbox>
<button label="&browseFile.label;" accesskey="&browseFile.accesskey;"
oncommand="SelectFile();"
id="browserChooseFile"
preference="pref.browser.homepage.disable_button.select_file"/>
<button label="&useCurrent.label;" accesskey="&useCurrent.accesskey;"
oncommand="SetHomePageToCurrentPage();"
id="browserUseCurrent"
preference="pref.browser.homepage.disable_button.current_page"/>
<button label="&useCurrentGroup.label;" accesskey="&useCurrentGroup.accesskey;"
oncommand="SetHomePageToCurrentGroup();"
id="browserUseCurrentGroup"
preference="pref.browser.homepage.disable_button.current_group"/>
<button label="&useDefault.label;" accesskey="&useDefault.accesskey;"
oncommand="SetHomePageToDefaultPage();"
id="browserUseDefault"
preference="pref.browser.homepage.disable_button.default_page"/>
</vbox>
</groupbox>
<!-- toolbar buttons customization -->
<description value="&toolbarIntro.label;"/>
<hbox id="prefShowButtons" flex="1" equalsize="true">
<groupbox id="prefShowButtonsBox1" flex="1">
<groupbox id="prefShowButtonsBox1" flex="1" orient="horizontal">
<caption label="&navToolbarIntro.label;"/>
<checkbox id="goButton"
label="&goButton.label;"
accesskey="&goButton.accesskey;"
preference="browser.toolbars.showbutton.go"/>
<checkbox id="searchButton"
label="&searchButton.label;"
accesskey="&searchButton.accesskey;"
preference="browser.toolbars.showbutton.search"/>
<checkbox id="printButton"
label="&printButton.label;"
accesskey="&printButton.accesskey;"
preference="browser.toolbars.showbutton.print"/>
<vbox flex="1">
<checkbox id="searchButton"
label="&searchButton.label;"
accesskey="&searchButton.accesskey;"
preference="browser.toolbars.showbutton.search"/>
<checkbox id="printButton"
label="&printButton.label;"
accesskey="&printButton.accesskey;"
preference="browser.toolbars.showbutton.print"/>
</vbox>
<vbox flex="1">
<checkbox id="goButton"
label="&goButton.label;"
accesskey="&goButton.accesskey;"
preference="browser.toolbars.showbutton.go"/>
</vbox>
</groupbox>
<groupbox id="prefShowButtonsBox" flex="1">
<caption label="&persToolbarIntro.label;"/>

Просмотреть файл

@ -39,8 +39,6 @@
<?xml-stylesheet type="text/css" href="chrome://communicator/skin/"?>
<?xml-stylesheet type="text/css" href="chrome://communicator/content/communicator.css"?>
<?xul-overlay href="chrome://communicator/content/pref/platformPrefOverlay.xul"?>
<!DOCTYPE prefwindow [
<!ENTITY % dtd1 SYSTEM "chrome://communicator/locale/pref/pref.dtd" > %dtd1;
<!ENTITY % dtd2 SYSTEM "chrome://communicator/locale/pref/preftree.dtd" > %dtd2;

Просмотреть файл

@ -38,8 +38,6 @@
***** END LICENSE BLOCK ***** -->
<?xul-overlay href="chrome://communicator/content/pref/platformPrefOverlay.xul"?>
<!DOCTYPE overlay SYSTEM "chrome://communicator/locale/pref/preftree.dtd">
<overlay id="prefTreeOverlay"

Просмотреть файл

Просмотреть файл

Просмотреть файл

@ -1,8 +1,3 @@
<!ENTITY urlbar.label "&#8984;+Return in the Location bar">
<!ENTITY urlbar.accesskey "L">
<!ENTITY middleClick.label "Middle-click, &#8984;+click or &#8984;+Return on links in a Web page">
<!ENTITY middleClick.accesskey "M">
<!-- LOCALIZATION NOTE : this is part of an inline-style attribute on the
preference dialog's <window> node, which specifies the width and height
in em units of the dialog. Localizers ONLY can increase these widths
@ -11,3 +6,9 @@
XUL/FE DEVELOPERS: DO NOT MODIFY THIS VALUE. It represents the correct
size of this window for en-US. -->
<!ENTITY prefWindow.size "width: 58em; height: 41em;">
<!-- pref-tabs.xul -->
<!ENTITY urlbar.label "&#8984;+Return in the Location bar">
<!ENTITY urlbar.accesskey "L">
<!ENTITY middleClick.label "Middle-click, &#8984;+click or &#8984;+Return on links in a Web page">
<!ENTITY middleClick.accesskey "M">

Просмотреть файл

@ -1,42 +1,47 @@
<!ENTITY pref.navigator.title "Browser">
<!ENTITY pref.navigator.title "Browser">
<!ENTITY navRadio "Display on">
<!ENTITY navStartPageMenu.label "Browser Startup">
<!ENTITY newWinPageMenu.label "New Window">
<!ENTITY newTabPageMenu.label "New Tab">
<!ENTITY navRadio "Display on">
<!ENTITY navStartPageMenu.label "Browser Startup">
<!ENTITY newWinPageMenu.label "New Window">
<!ENTITY newTabPageMenu.label "New Tab">
<!ENTITY blankPageRadio.label "Blank page">
<!ENTITY blankPageRadio.accesskey "B">
<!ENTITY homePageRadio.label "Home page">
<!ENTITY homePageRadio.accesskey "m">
<!ENTITY lastPageRadio.label "Last page visited">
<!ENTITY lastPageRadio.accesskey "L">
<!ENTITY blankPageRadio.label "Blank page">
<!ENTITY blankPageRadio.accesskey "B">
<!ENTITY homePageRadio.label "Home page">
<!ENTITY homePageRadio.accesskey "m">
<!ENTITY lastPageRadio.label "Last page visited">
<!ENTITY lastPageRadio.accesskey "L">
<!ENTITY header2.label "Home Page">
<!ENTITY homePageIntro.label "Clicking the Home button takes you to this page or group of pages.">
<!ENTITY location.label "Location:">
<!ENTITY location.accesskey "a">
<!ENTITY useCurrent.label "Use Current Page">
<!ENTITY useCurrent.accesskey "U">
<!ENTITY useCurrentGroup.label "Use Current Group">
<!ENTITY useCurrentGroup.accesskey "G">
<!ENTITY browseFile.label "Choose File...">
<!ENTITY browseFile.accesskey "C">
<!ENTITY useDefault.label "Restore Default">
<!ENTITY useDefault.accesskey "R">
<!ENTITY header2.label "Home Page">
<!ENTITY homePageIntro.label "Clicking the Home button takes you to this group of pages:">
<!ENTITY useCurrent.label "Use Current Page">
<!ENTITY useCurrent.accesskey "U">
<!ENTITY useCurrentGroup.label "Use Current Group">
<!ENTITY useCurrentGroup.accesskey "G">
<!ENTITY browseFile.label "Choose File...">
<!ENTITY browseFile.accesskey "C">
<!ENTITY useDefault.label "Restore Default">
<!ENTITY useDefault.accesskey "R">
<!ENTITY toolbarIntro.label "Select the buttons you want to see in the toolbars:">
<!ENTITY toolbarIntro.label "Select the buttons you want to see in the toolbars:">
<!ENTITY navToolbarIntro.label "Navigation Toolbar">
<!ENTITY goButton.label "Go">
<!ENTITY goButton.accesskey "o">
<!ENTITY searchButton.label "Search">
<!ENTITY searchButton.accesskey "S">
<!ENTITY printButton.label "Print">
<!ENTITY printButton.accesskey "P">
<!ENTITY navToolbarIntro.label "Navigation Toolbar">
<!ENTITY goButton.label "Go">
<!ENTITY goButton.accesskey "o">
<!ENTITY searchButton.label "Search">
<!ENTITY searchButton.accesskey "S">
<!ENTITY printButton.label "Print">
<!ENTITY printButton.accesskey "P">
<!ENTITY persToolbarIntro.label "Personal Toolbar">
<!ENTITY homeButton.label "Home">
<!ENTITY homeButton.accesskey "e">
<!ENTITY bookmarksButton.label "Bookmarks">
<!ENTITY bookmarksButton.accesskey "k">
<!ENTITY persToolbarIntro.label "Personal Toolbar">
<!ENTITY homeButton.label "Home">
<!ENTITY homeButton.accesskey "e">
<!ENTITY bookmarksButton.label "Bookmarks">
<!ENTITY bookmarksButton.accesskey "k">
<!ENTITY defaultBrowserGroup.label "Default Browser">
<!ENTITY defaultBrowserButton.label "Set Default Browser">
<!ENTITY defaultBrowserButton.accesskey "D">
<!ENTITY alreadyDefaultText "&brandShortName; is already your default browser.">
<!ENTITY defaultPendingText "&brandShortName; will be set as your default browser when you click OK.">
<!ENTITY makeDefaultText "Set &brandShortName; as your default browser.">

Просмотреть файл

@ -1,6 +1,3 @@
<!-- extracted from content/PrefsWindow.xul -->
<!-- LOCALIZATION NOTE : FILE UI for the outer parts of the Prefs dialog -->
<!ENTITY prefWindow.title "Preferences">
<!ENTITY categoryHeader "Category">

Просмотреть файл

@ -16,6 +16,4 @@ languageTitle=Change Language
prefSaveFailedAlert=Failed to save the preferences file. Any preference changes will be lost at the end of this session.
prefSaveFailedTitle=Save Error
groupIsSet=-- Home Page Group is Set --
labelDefaultFont=Default (%font_family%)

Просмотреть файл

@ -1,8 +1,3 @@
<!ENTITY urlbar.label "Ctrl+Enter in the Location bar">
<!ENTITY urlbar.accesskey "L">
<!ENTITY middleClick.label "Middle-click, Ctrl+click or Ctrl+Enter on links in a Web page">
<!ENTITY middleClick.accesskey "M">
<!-- LOCALIZATION NOTE : this is part of an inline-style attribute on the
preference dialog's <window> node, which specifies the width and height
in em units of the dialog. Localizers ONLY can increase these widths
@ -11,3 +6,9 @@
XUL/FE DEVELOPERS: DO NOT MODIFY THIS VALUE. It represents the correct
size of this window for en-US. -->
<!ENTITY prefWindow.size "width: 52em; height: 41em;">
<!-- pref-tabs.xul -->
<!ENTITY urlbar.label "Ctrl+Enter in the Location bar">
<!ENTITY urlbar.accesskey "L">
<!ENTITY middleClick.label "Middle-click, Ctrl+click or Ctrl+Enter on links in a Web page">
<!ENTITY middleClick.accesskey "M">

Просмотреть файл

@ -1,16 +1,3 @@
<!ENTITY winhooks.label "System">
<!ENTITY defaultBrowserGroup.label "Default Browser">
<!ENTITY defaultBrowserButton.label "Set Default Browser">
<!ENTITY alreadyDefaultText "&brandShortName; is already your default browser.">
<!ENTITY defaultPendingText "&brandShortName; will be set as your default browser when you click OK.">
<!ENTITY makeDefaultText "Set &brandShortName; as your default browser.">
<!ENTITY urlbar.label "Ctrl+Enter in the Location bar">
<!ENTITY urlbar.accesskey "L">
<!ENTITY middleClick.label "Middle-click, Ctrl+click or Ctrl+Enter on links in a Web page">
<!ENTITY middleClick.accesskey "M">
<!-- LOCALIZATION NOTE : this is part of an inline-style attribute on the
preference dialog's <window> node, which specifies the width and height
in em units of the dialog. Localizers ONLY can increase these widths
@ -19,3 +6,9 @@
XUL/FE DEVELOPERS: DO NOT MODIFY THIS VALUE. It represents the correct
size of this window for en-US. -->
<!ENTITY prefWindow.size "width: 52em; height: 41em;">
<!-- pref-tabs.xul -->
<!ENTITY urlbar.label "Ctrl+Enter in the Location bar">
<!ENTITY urlbar.accesskey "L">
<!ENTITY middleClick.label "Middle-click, Ctrl+click or Ctrl+Enter on links in a Web page">
<!ENTITY middleClick.accesskey "M">