This commit is contained in:
blakeross%telocity.com 2002-09-20 03:52:36 +00:00
Родитель bc35184c13
Коммит e29a166f4b
9 изменённых файлов: 303 добавлений и 46 удалений

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

@ -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.

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

@ -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;"/>

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

@ -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;
}
}

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

@ -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();
}

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

@ -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>

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

@ -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)

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

@ -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">

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

@ -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;">

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

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