зеркало из https://github.com/mozilla/pjs.git
Forced reload, stop button, ability to use bookmark keywords in Open Web Location dialog, persist window choice, .8 -> .9, moving things to more appropriate places (60498, 62078, 49773, others). r=timeless/jag sr=alecf
This commit is contained in:
Родитель
7f527947d9
Коммит
c41224c4a9
|
@ -166,7 +166,7 @@
|
|||
{
|
||||
var url = readFromClipboard();
|
||||
if (url) {
|
||||
loadShortcutOrURI(url);
|
||||
loadURI(getShortcutOrURI(url));
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
@ -169,7 +169,7 @@ var contentAreaDNDObserver = {
|
|||
|
||||
switch (document.firstChild.getAttribute('windowtype')) {
|
||||
case "navigator:browser":
|
||||
loadShortcutOrURI(url);
|
||||
loadURI(getShortcutOrURI(url));
|
||||
break;
|
||||
case "navigator:view-source":
|
||||
viewSource(url);
|
||||
|
|
|
@ -0,0 +1,148 @@
|
|||
/* -*- 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 <blakeross@telocity.com>
|
||||
*/
|
||||
|
||||
var browser;
|
||||
var dialog;
|
||||
var bundle;
|
||||
var pref = null;
|
||||
try {
|
||||
pref = Components.classes["@mozilla.org/preferences;1"]
|
||||
.getService(Components.interfaces.nsIPref);
|
||||
} catch (ex) {
|
||||
// not critical, remain silent
|
||||
}
|
||||
|
||||
function onLoad()
|
||||
{
|
||||
bundle = srGetStrBundle("chrome://communicator/locale/openLocation.properties");
|
||||
|
||||
dialog = new Object;
|
||||
dialog.input = document.getElementById("dialog.input");
|
||||
dialog.help = document.getElementById("dialog.help");
|
||||
dialog.open = document.getElementById("ok");
|
||||
dialog.openAppList = document.getElementById("openAppList");
|
||||
dialog.openTopWindow = document.getElementById("currentWindow");
|
||||
dialog.openEditWindow = document.getElementById("editWindow");
|
||||
|
||||
browser = window.arguments[0];
|
||||
if (!browser) {
|
||||
// No browser supplied - we are calling from Composer
|
||||
dialog.openAppList.selectedItem = dialog.openEditWindow;
|
||||
dialog.openTopWindow.setAttribute("disabled", "true");
|
||||
}
|
||||
else {
|
||||
dialog.openAppList.selectedItem = dialog.openTopWindow;
|
||||
}
|
||||
|
||||
// change OK button text to 'open'
|
||||
dialog.open.setAttribute("value", bundle.GetStringFromName("openButtonLabel"));
|
||||
|
||||
doSetOKCancel(open, 0, 0, 0);
|
||||
|
||||
dialog.input.focus();
|
||||
if (pref) {
|
||||
try {
|
||||
var data = pref.GetIntPref("general.open_location.last_window_choice");
|
||||
var element = dialog.openAppList.getElementsByAttribute("data", data)[0];
|
||||
if (element)
|
||||
dialog.openAppList.selectedItem = element;
|
||||
dialog.input.value = pref.CopyUnicharPref("general.open_location.last_url");
|
||||
}
|
||||
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 = browser.getShortcutOrURI(dialog.input.value);
|
||||
try {
|
||||
switch (dialog.openAppList.data) {
|
||||
case "0":
|
||||
browser.loadURI(url);
|
||||
break;
|
||||
case "1":
|
||||
window.opener.delayedOpenWindow(getBrowserURL(), "all,dialog=no", url);
|
||||
break;
|
||||
case "2":
|
||||
// editPage is in utilityOverlay.js (all editor openers with URL should use this)
|
||||
// 3rd param tells editPage to use "delayedOpenWindow"
|
||||
editPage(url, window.opener, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
catch(exception) {
|
||||
}
|
||||
|
||||
if (pref) {
|
||||
pref.SetUnicharPref("general.open_location.last_url", dialog.input.value);
|
||||
pref.SetIntPref("general.open_location.last_window_choice", dialog.openAppList.data);
|
||||
}
|
||||
|
||||
// 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, bundle.GetStringFromName("chooseFileDialogTitle"), nsIFilePicker.modeOpen);
|
||||
|
||||
if (dialog.openAppList.data == "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();
|
||||
}
|
|
@ -0,0 +1,89 @@
|
|||
<?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://navigator/skin/" type="text/css"?>
|
||||
<?xul-overlay href="chrome://global/content/dialogOverlay.xul"?>
|
||||
|
||||
<!DOCTYPE window [
|
||||
<!ENTITY % brandDTD SYSTEM "chrome://global/locale/brand.dtd" >
|
||||
%brandDTD;
|
||||
<!ENTITY % openDialogDTD SYSTEM "chrome://communicator/locale/openLocation.dtd" >
|
||||
%openDialogDTD;
|
||||
]>
|
||||
|
||||
<window id="openLocation"
|
||||
xmlns:html="http://www.w3.org/1999/xhtml"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
title="&caption.label;"
|
||||
onload="onLoad()"
|
||||
style="width: 40em;"
|
||||
class="dialog"
|
||||
align="vertical"
|
||||
persist="screenX screenY"
|
||||
screenX="24" screenY="24">
|
||||
|
||||
<script language="javascript" src="chrome://global/content/strres.js"/>
|
||||
<script language="javascript" src="chrome://global/content/globalOverlay.js"/>
|
||||
<script language="javascript" src="chrome://communicator/content/openLocation.js"/>
|
||||
<script language="javascript" src="chrome://communicator/content/utilityOverlay.js"/>
|
||||
|
||||
<keyset id="keyset"/>
|
||||
|
||||
<box>
|
||||
<box orient="vertical">
|
||||
<image class="question-icon"/>
|
||||
<spring flex="1"/>
|
||||
</box>
|
||||
<separator orient="vertical" class="thin"/>
|
||||
<box orient="vertical" flex="1">
|
||||
<html>&enter.label;</html>
|
||||
<separator class="thin"/>
|
||||
|
||||
<box autostretch="never">
|
||||
<textfield id="dialog.input" flex="1" oninput="doEnabling();"/>
|
||||
<button value="&chooseFile.label;" onclick="onChooseFile();"/>
|
||||
</box>
|
||||
<box autostretch="never" valign="center">
|
||||
<text class="label" value="&openWhere.label;"/>
|
||||
<menulist id="openAppList">
|
||||
<menupopup>
|
||||
<menuitem data="0" id="currentWindow" value="&topWindow.label;"/>
|
||||
<menuitem data="1" value="&newWindow.label;"/>
|
||||
<menuseparator/>
|
||||
<menuitem data="2" id="editWindow" value="&editNewWindow.label;"/>
|
||||
</menupopup>
|
||||
</menulist>
|
||||
<spring flex="1"/>
|
||||
</box>
|
||||
</box>
|
||||
</box>
|
||||
|
||||
<separator/>
|
||||
|
||||
<box id="okCancelButtonsRight"/>
|
||||
|
||||
</window>
|
Загрузка…
Ссылка в новой задаче