Fix 169347 and 169823.

git-svn-id: svn://10.0.0.236/trunk@130112 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
blakeross%telocity.com
2002-09-20 03:52:36 +00:00
parent aa898ce081
commit 3b38271dff
9 changed files with 303 additions and 46 deletions

View File

@@ -49,7 +49,6 @@ var gURLBar = null;
var gProxyButton = null;
var gProxyFavIcon = null;
var gProxyDeck = null;
var gSearchService = null;
var gNavigatorBundle;
var gBrandBundle;
var gLastValidURLStr = "";
@@ -58,6 +57,8 @@ var gHaveUpdatedToolbarState = false;
var gClickSelectsAll = true;
var gIgnoreFocus = false;
var gIgnoreClick = false;
var gToolbarMode = "icons";
var gIconSize = "";
var gPrefService = null;
@@ -72,8 +73,6 @@ var gContextMenu = null;
// Global variable that caches the default search engine info
var gDefaultEngine = null;
var gBookmarkPopup = null;
const nsIWebNavigation = Components.interfaces.nsIWebNavigation;
var gPrintSettingsAreGlobal = true;
var gSavePrintSettings = true;
@@ -509,10 +508,15 @@ function addBookmarkAs(aBrowser)
BookmarksUtils.addBookmarkForBrowser(aBrowser.webNavigation, true);
}
function BrowserOpenWindow()
function openLocation()
{
//opens a window where users can select a web location to open
openDialog("chrome://communicator/content/openLocation.xul", "_blank", "chrome,modal,titlebar", window);
if (gURLBar && !document.getElementById("nav-bar").hidden) {
gURLBar.focus();
gURLBar.select();
}
else {
openDialog("chrome://browser/content/openLocation.xul", "_blank", "chrome,modal,titlebar", window);
}
}
function BrowserOpenTab()
@@ -1047,20 +1051,6 @@ function checkForDefaultBrowser()
}
}
function ShowAndSelectContentsOfURLBar()
{
var navBar = document.getElementById("nav-bar");
// If it's hidden, show it.
if (navBar.getAttribute("hidden") == "true")
goToggleToolbar('nav-bar','toggle_navbar');
if (gURLBar.value)
gURLBar.select();
else
gURLBar.focus();
}
// If "ESC" is pressed in the url bar, we replace the urlbar's value with the url of the page
// and highlight it, unless it is about:blank, where we reset it to "".
function handleURLBarRevert()
@@ -1214,6 +1204,7 @@ function BrowserFullScreen()
function onFullScreen()
{
FullScreen.toggle();
}
// Set up a lame hack to avoid opening two bookmarks.
@@ -2499,7 +2490,16 @@ var FullScreen =
for (i = 0; i < els.length; ++i) {
// XXX don't interfere with previously collapsed toolbars
if (els[i].getAttribute("fullscreentoolbar") == "true") {
this.setToolbarButtonMode(els[i], aShow ? "" : "small");
if (!aShow) {
gToolbarMode = els[i].getAttribute("mode");
gIconSize = els[i].getAttribute("iconsize");
els[i].setAttribute("mode", "icons");
els[i].setAttribute("iconsize", "small");
}
else {
els[i].setAttribute("mode", gToolbarMode);
els[i].setAttribute("iconsize", gIconSize);
}
} else {
// use moz-collapsed so it doesn't persist hidden/collapsed,
// so that new windows don't have missing toolbars
@@ -2514,25 +2514,6 @@ var FullScreen =
for (i = 0; i < controls.length; ++i)
controls[i].hidden = aShow;
},
setToolbarButtonMode: function(aToolbar, aMode)
{
aToolbar.setAttribute("toolbarmode", aMode);
this.setToolbarButtonModeFor(aToolbar, "toolbarbutton", aMode);
this.setToolbarButtonModeFor(aToolbar, "button", aMode);
this.setToolbarButtonModeFor(aToolbar, "textbox", aMode);
},
setToolbarButtonModeFor: function(aToolbar, aTag, aMode)
{
var XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
var els = aToolbar.getElementsByTagNameNS(XULNS, aTag);
for (var i = 0; i < els.length; ++i) {
els[i].setAttribute("toolbarmode", aMode);
}
}
};
const NS_ERROR_MODULE_NETWORK = 2152398848;
@@ -2799,7 +2780,9 @@ nsBrowserStatusHandler.prototype =
// Do not update urlbar if there was a subframe navigation
if (aWebProgress.DOMWindow == content) {
if (!this.userTyped.value) {
//XXXBlake don't we have to reinit this.urlBar, etc.
// when the toolbar changes?
if (this.urlBar && !this.userTyped.value) {
// If the url has "wyciwyg://" as the protocol, strip it off.
// Nobody wants to see it on the urlbar for dynamically generated
// pages.

View File

@@ -165,7 +165,8 @@ Contributor(s):
<command id="Browser:Stop" oncommand="BrowserStop();" disabled="true"/>
<command id="cmd_textZoomReduce" oncommand="ZoomManager.prototype.getInstance().reduce();"/>
<command id="cmd_textZoomEnlarge" oncommand="ZoomManager.prototype.getInstance().enlarge();"/>
<command id="Browser:OpenLocation" oncommand="openLocation();"/>
<broadcaster id="isImage"/>
<keyset>
@@ -174,7 +175,7 @@ Contributor(s):
command="cmd_newNavigator"
modifiers="accel"/>
<key id="key_newNavigatorTab" key="&tabCmd.commandkey;" modifiers="accel" command="cmd_newNavigatorTab"/>
<key id="focusURLBar" key="&openCmd.commandkey;" oncommand="ShowAndSelectContentsOfURLBar();"
<key id="focusURLBar" key="&openCmd.commandkey;" command="Browser:OpenLocation"
modifiers="accel"/>
<key id="openFileKb" key="&openFileCmd.commandkey;" command="Browser:OpenFile" modifiers="accel"/>
<key id="key_savePage" key="&savePageCmd.commandkey;" command="Browser:SavePage" modifiers="accel"/>
@@ -405,6 +406,7 @@ Contributor(s):
command="cmd_newNavigator"/>
<menuitem command="cmd_newNavigatorTab" key="key_newNavigatorTab"
label="&tabCmd.label;" accesskey="&tabCmd.accesskey;"/>
<menuitem label="&openLocationCmd.label;" accesskey="&openLocationCmd.accesskey;" key="focusURLBar" command="Browser:OpenLocation"/>
<menuitem label="&openFileCmd.label;" accesskey="&openFileCmd.accesskey;" key="openFileKb" command="Browser:OpenFile"/>
<menuitem id="menu_close"/>
<menuitem id="menu_closeWindow" hidden="true" command="cmd_closeWindow" key="key_closeWindow" label="&closeWindow.label;"/>

View File

@@ -55,8 +55,10 @@ function buildDialog()
if (!modeValue)
modeValue = "full";
modeList.value = modeValue;
if (modeValue == "text")
if (modeValue == "text") {
useSmallIcons.disabled = true;
useSmallIcons.checked = false;
}
var cloneToolbarBox = document.getElementById("cloned-bar-container");
var paletteBox = document.getElementById("palette-box");
@@ -556,5 +558,12 @@ function updateToolbarMode(modeValue)
gToolbarChanged = true;
var iconSizeCheckbox = document.getElementById("smallicons");
iconSizeCheckbox.disabled = modeValue == "text";
if (modeValue == "text") {
iconSizeCheckbox.disabled = true;
iconSizeCheckbox.checked = false;
updateIconSize(false);
}
else {
iconSizeCheckbox.disabled = false;
}
}

View File

@@ -0,0 +1,154 @@
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
*
* The contents of this file are subject to the Netscape Public
* License Version 1.1 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.mozilla.org/NPL/
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* The Original Code is Mozilla Communicator client code, released March
* 31, 1998.
*
* The Initial Developer of the Original Code is Netscape Communications
* Corporation. Portions created by Netscape are
* Copyright (C) 1998 Netscape Communications Corporation. All
* Rights Reserved.
*
* Contributor(s): Michael Lowe <michael.lowe@bigfoot.com>
* Blake Ross <blaker@netscape.com>
*/
var browser;
var dialog = {};
var pref = null;
try {
pref = Components.classes["@mozilla.org/preferences-service;1"]
.getService(Components.interfaces.nsIPrefBranch);
} catch (ex) {
// not critical, remain silent
}
function onLoad()
{
dialog.input = document.getElementById("dialog.input");
dialog.open = document.documentElement.getButton("accept");
dialog.openAppList = document.getElementById("openAppList");
dialog.openTopWindow = document.getElementById("currentWindow");
dialog.bundle = document.getElementById("openLocationBundle");
if ("arguments" in window && window.arguments.length >= 1)
browser = window.arguments[0];
dialog.openAppList.selectedItem = dialog.openTopWindow;
// change OK button text to 'open'
dialog.open.label = dialog.bundle.getString("openButtonLabel");
if (pref) {
try {
var value = pref.getIntPref("general.open_location.last_window_choice");
var element = dialog.openAppList.getElementsByAttribute("value", value)[0];
if (element)
dialog.openAppList.selectedItem = element;
dialog.input.value = pref.getComplexValue("general.open_location.last_url",
Components.interfaces.nsISupportsString).data;
}
catch(ex) {
}
if (dialog.input.value)
dialog.input.select(); // XXX should probably be done automatically
}
doEnabling();
}
function doEnabling()
{
dialog.open.disabled = !dialog.input.value;
}
function open()
{
var url;
if (browser)
url = browser.getShortcutOrURI(dialog.input.value);
else
url = dialog.input.value;
try {
switch (dialog.openAppList.value) {
case "0":
browser.loadURI(url);
break;
case "1":
window.opener.delayedOpenWindow(getBrowserURL(), "all,dialog=no", url);
break;
case "3":
if (browser.getBrowser && browser.getBrowser().localName == "tabbrowser")
browser.delayedOpenTab(url);
else
browser.loadURI(url); // Just do a normal load.
break;
}
}
catch(exception) {
}
if (pref) {
var str = Components.classes["@mozilla.org/supports-string;1"]
.createInstance(Components.interfaces.nsISupportsString);
str.data = dialog.input.value;
pref.setComplexValue("general.open_location.last_url",
Components.interfaces.nsISupportsString, str);
pref.setIntPref("general.open_location.last_window_choice", dialog.openAppList.value);
}
// Delay closing slightly to avoid timing bug on Linux.
window.close();
return false;
}
function createInstance(contractid, iidName)
{
var iid = Components.interfaces[iidName];
return Components.classes[contractid].createInstance(iid);
}
const nsIFilePicker = Components.interfaces.nsIFilePicker;
function onChooseFile()
{
try {
var fp = Components.classes["@mozilla.org/filepicker;1"].createInstance(nsIFilePicker);
fp.init(window, dialog.bundle.getString("chooseFileDialogTitle"), nsIFilePicker.modeOpen);
if (dialog.openAppList.value == "2") {
// When loading into Composer, direct user to prefer HTML files and text files,
// so we call separately to control the order of the filter list
fp.appendFilters(nsIFilePicker.filterHTML | nsIFilePicker.filterText);
fp.appendFilters(nsIFilePicker.filterText);
fp.appendFilters(nsIFilePicker.filterAll);
}
else {
fp.appendFilters(nsIFilePicker.filterHTML | nsIFilePicker.filterText |
nsIFilePicker.filterAll | nsIFilePicker.filterImages | nsIFilePicker.filterXML);
}
if (fp.show() == nsIFilePicker.returnOK && fp.fileURL.spec && fp.fileURL.spec.length > 0)
dialog.input.value = fp.fileURL.spec;
}
catch(ex) {
}
doEnabling();
}
function useUBHistoryItem(aMenuItem)
{
var urlbar = document.getElementById("dialog.input");
urlbar.value = aMenuItem.getAttribute("label");
urlbar.focus();
doEnabling();
}

View File

@@ -0,0 +1,87 @@
<?xml version="1.0"?>
<!--
The contents of this file are subject to the Netscape Public
License Version 1.1 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.mozilla.org/NPL/
Software distributed under the License is distributed on an "AS
IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
implied. See the License for the specific language governing
rights and limitations under the License.
The Original Code is Mozilla Communicator client code, released
March 31, 1998.
The Initial Developer of the Original Code is Netscape
Communications Corporation. Portions created by Netscape are
Copyright (C) 1998-1999 Netscape Communications Corporation. All
Rights Reserved.
Contributor(s):
Ben Goodger <ben@netscape.com>
Michael Lowe <michael.lowe@bigfoot.com>
-->
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<!DOCTYPE dialog [
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd" >
%brandDTD;
<!ENTITY % openDialogDTD SYSTEM "chrome://browser/locale/openLocation.dtd" >
%openDialogDTD;
]>
<dialog id="openLocation"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
title="&caption.label;"
onload="onLoad()"
ondialogaccept="open()"
style="width: 40em;"
persist="screenX screenY"
screenX="24" screenY="24">
<script type="application/x-javascript" src="chrome://global/content/globalOverlay.js"/>
<script type="application/x-javascript" src="chrome://browser/content/openLocation.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/utilityOverlay.js"/>
//XXXBlake Bleh! We collapsed sessionHistoryUI.js into browser.js.
<script type="application/x-javascript" src="chrome://navigator/content/sessionHistoryUI.js"/>
<stringbundle id="openLocationBundle" src="chrome://browser/locale/openLocation.properties"/>
<hbox>
<separator orient="vertical" class="thin"/>
<vbox flex="1">
<description>&enter.label;</description>
<separator class="thin"/>
<hbox align="center">
<textbox id="dialog.input" flex="1" type="autocomplete"
searchSessions="history" timeout="50" maxrows="6"
disablehistory="false"
oninput="doEnabling();">
<menupopup id="ubhist-popup" class="autocomplete-history-popup"
popupalign="topleft" popupanchor="bottomleft"
onpopupshowing="createUBHistoryMenu(event.target);"
oncommand="useUBHistoryItem(event.target)"/>
</textbox>
<button label="&chooseFile.label;" oncommand="onChooseFile();"/>
</hbox>
<hbox align="center">
<label value="&openWhere.label;"/>
<menulist id="openAppList">
<menupopup>
<menuitem value="0" id="currentWindow" label="&topWindow.label;"/>
<menuitem value="1" label="&newWindow.label;"/>
<menuitem value="3" label="&newTab.label;"/>
</menupopup>
</menulist>
<spacer flex="1"/>
</hbox>
</vbox>
</hbox>
</dialog>

View File

@@ -12,6 +12,8 @@ browser.jar:
content/browser/viewsource.js (content/viewsource.js)
content/browser/viewSource.xul (content/viewSource.xul)
content/browser/viewSourceOverlay.xul (content/viewSourceOverlay.xul)
content/browser/openLocation.xul (content/openLocation.xul)
content/browser/openLocation.js (content/openLocation.js)
classic.jar:
skin/classic/browser/browser.css (skin/browser.css)
@@ -49,6 +51,8 @@ en-US.jar:
locale/en-US/browser/customizeToolbar.dtd (locale/customizeToolbar.dtd)
locale/en-US/browser/aboutDialog.dtd (locale/aboutDialog.dtd)
locale/en-US/browser/viewSource.dtd (locale/viewSource.dtd)
locale/en-US/browser/openLocation.dtd (locale/openLocation.dtd)
locale/en-US/browser/openLocation.properties (locale/openLocation.properties)
US.jar:
locale/US/browser-region/region.properties (locale/region.properties)

View File

@@ -227,4 +227,7 @@
<!ENTITY textZoomReduceCmd.label "Decrease Text Size">
<!ENTITY textZoomReduceCmd.accesskey "D">
<!ENTITY textZoomReduceCmd.commandkey "-">
<!ENTITY textZoomReduceCmd.commandkey "-">
<!ENTITY openLocationCmd.label "Open Location">
<!ENTITY openLocationCmd.accesskey "L">

View File

@@ -0,0 +1,12 @@
<!-- extracted from content/openLocation.xul -->
<!ENTITY enter.label "Enter the web location (URL), or specify the local file you would like to open:">
<!ENTITY chooseFile.label "Choose File...">
<!ENTITY newWindow.label "New Navigator window">
<!ENTITY newTab.label "New Navigator tab">
<!ENTITY topWindow.label "Current Navigator window">
<!ENTITY editNewWindow.label "New Composer window">
<!ENTITY cancel.label "Cancel">
<!ENTITY caption.label "Open Web Location">
<!ENTITY openWhere.label "Open in:">
<!ENTITY example.label "Example: &vendorURL;">

View File

@@ -0,0 +1,3 @@
openButtonLabel=Open
chooseFileDialogTitle=Choose File
existingNavigatorWindow=Existing Navigator window