bug 417590 - port Firefox application pane as new helper app pane in SeaMonkey, r+sr=Neil

git-svn-id: svn://10.0.0.236/trunk@247096 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
kairo%kairo.at 2008-03-05 14:29:11 +00:00
parent 89215e7ab6
commit 8c22c3e4b6
19 changed files with 2450 additions and 442 deletions

View File

@ -220,6 +220,33 @@ pref("browser.preferences.animateFadeIn", true);
pref("browser.preferences.animateFadeIn", false);
#endif
pref("browser.download.show_plugins_in_list", true);
pref("browser.download.hide_plugins_without_extensions", true);
// initial web feed readers list - add enough entries for locales to add theirs
pref("browser.contentHandlers.types.0.title", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.0.uri", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.0.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.1.title", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.1.uri", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.1.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.2.title", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.2.uri", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.2.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.3.title", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.3.uri", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.3.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.4.title", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.4.uri", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.4.type", "application/vnd.mozilla.maybe.feed");
pref("browser.contentHandlers.types.5.title", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.5.uri", "chrome://navigator-region/locale/region.properties");
pref("browser.contentHandlers.types.5.type", "application/vnd.mozilla.maybe.feed");
pref("browser.feeds.handler", "ask");
pref("browser.videoFeeds.handler", "ask");
pref("browser.audioFeeds.handler", "ask");
pref("app.releaseNotesURL", "chrome://branding/locale/brand.properties");
pref("app.vendorURL", "chrome://branding/locale/brand.properties");

View File

@ -49,3 +49,9 @@ EXTRA_COMPONENTS = \
$(NULL)
include $(topsrcdir)/config/rules.mk
# DEFINES for preprocessing
# once we support the shell service, define this for supported platforms
#ifneq (,$(filter windows gtk2 mac cocoa, $(MOZ_WIDGET_TOOLKIT)))
#DEFINES += -DHAVE_SHELL_SERVICE=1
#endif

View File

@ -142,10 +142,15 @@ comm.jar:
content/communicator/pref/preftree.xul (pref/preftree.xul)
content/communicator/pref/pref-help.js (pref/pref-help.js)
# files deprecated by preferences.xul: end
content/communicator/pref/prefpanels.css (pref/prefpanels.css)
content/communicator/pref/prefpanels.xml (pref/prefpanels.xml)
content/communicator/pref/pref-advanced.xul (pref/pref-advanced.xul)
content/communicator/pref/pref-appearance.xul (pref/pref-appearance.xul)
content/communicator/pref/pref-applications.xul (pref/pref-applications.xul)
content/communicator/pref/pref-applications.js (pref/pref-applications.js)
* content/communicator/pref/pref-applications.js (pref/pref-applications.js)
* content/communicator/pref/pref-applicationManager.js (pref/pref-applicationManager.js)
content/communicator/pref/pref-applicationManager.xul (pref/pref-applicationManager.xul)
# XXX: remove line below once we have a helper app dialog that doesn't need it (comes with toolkit download manager)
content/communicator/pref/pref-applications-edit.xul (pref/pref-applications-edit.xul)
content/communicator/pref/overrideHandler.js (pref/overrideHandler.js)
content/communicator/pref/pref-cache.js (pref/pref-cache.js)

View File

@ -0,0 +1,130 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla 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/MPL/
*
* 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.org Code.
*
* The Initial Developer of the Original Code is
* Mozilla Corporation.
* Portions created by the Initial Developer are Copyright (C) 2008
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Florian Queze <florian@queze.net> (Original author)
* Robert Kaiser <kairo@kairo.at>
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
// As pref-applications.js is always loaded, we can (and should!) reuse
// the nsI* constants from there, if needed also any services we need.
var gAppManagerDialog = {
_removed: [],
init: function appManager_init() {
this.handlerInfo = window.arguments[0];
var bundle = document.getElementById("appManagerBundle");
var contentText;
if (this.handlerInfo.type == TYPE_MAYBE_FEED)
contentText = bundle.getString("descriptionHandleWebFeeds");
else {
var description = gApplicationsPane._describeType(this.handlerInfo);
var key = (this.handlerInfo.wrappedHandlerInfo instanceof nsIMIMEInfo) ?
"descriptionHandleFile" :
"descriptionHandleProtocol";
contentText = bundle.getFormattedString(key, [description]);
}
document.getElementById("appDescription").textContent = contentText;
var list = document.getElementById("appList");
var apps = this.handlerInfo.possibleApplicationHandlers.enumerate();
while (apps.hasMoreElements()) {
let app = apps.getNext();
app.QueryInterface(nsIHandlerApp);
var item = list.appendItem(app.name);
item.className = "listitem-iconic";
item.setAttribute("image", gApplicationsPane._getIconURLForHandlerApp(app));
item.app = app;
}
list.selectedIndex = 0;
},
onOK: function appManager_onOK() {
if (!this._removed.length) {
// return early to avoid calling the |store| method.
return;
}
for (var i = 0; i < this._removed.length; ++i)
this.handlerInfo.removePossibleApplicationHandler(this._removed[i]);
this.handlerInfo.store();
},
onCancel: function appManager_onCancel() {
// do nothing
},
remove: function appManager_remove() {
var list = document.getElementById("appList");
this._removed.push(list.selectedItem.app);
var index = list.selectedIndex;
list.removeItemAt(index);
if (list.getRowCount() == 0) {
// The list is now empty, make the bottom part disappear
document.getElementById("appDetails").hidden = true;
}
else {
// Select the item at the same index, if we removed the last
// item of the list, select the previous item
if (index == list.getRowCount())
--index;
list.selectedIndex = index;
}
},
onSelect: function appManager_onSelect() {
var list = document.getElementById("appList");
if (!list.selectedItem) {
document.getElementById("cmd_delete").setAttribute("disabled", "true");
return;
}
document.getElementById("cmd_delete").removeAttribute("disabled");
var app = list.selectedItem.app;
var address = "";
if (app instanceof nsILocalHandlerApp)
address = app.executable.path;
else if (app instanceof nsIWebHandlerApp)
address = app.uriTemplate;
else if (app instanceof nsIWebContentHandlerInfo)
address = app.uri;
document.getElementById("appLocation").value = address;
var bundle = document.getElementById("appManagerBundle");
var appType = app instanceof nsILocalHandlerApp ? "descriptionLocalApp"
: "descriptionWebApp";
document.getElementById("appType").value = bundle.getString(appType);
}
};

View File

@ -0,0 +1,92 @@
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla 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/MPL/
-
- 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.org Code.
-
- The Initial Developer of the Original Code is
- Mozilla Corporation.
- Portions created by the Initial Developer are Copyright (C) 2008
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Florian Queze <florian@queze.net> (Original author)
- Robert Kaiser <kairo@kairo.at>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<?xml-stylesheet href="chrome://communicator/skin/"?>
<!DOCTYPE dialog SYSTEM "chrome://communicator/locale/pref/pref-applicationManager.dtd">
<dialog id="appManager"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
buttons="accept,cancel"
onload="gAppManagerDialog.init();"
ondialogaccept="gAppManagerDialog.onOK();"
ondialogcancel="gAppManagerDialog.onCancel();"
title="&appManager.title;"
style="&appManager.style;"
persist="screenX screenY">
<script type="application/javascript"
src="chrome://communicator/content/pref/pref-applications.js"/>
<script type="application/javascript"
src="chrome://communicator/content/pref/pref-applicationManager.js"/>
<commandset id="appManagerCommandSet">
<command id="cmd_delete"
oncommand="gAppManagerDialog.remove();"
disabled="true"/>
</commandset>
<keyset id="appManagerKeyset">
<key id="delete" keycode="VK_DELETE" command="cmd_delete"/>
</keyset>
<stringbundleset id="appManagerBundleset">
<stringbundle id="appManagerBundle"
src="chrome://communicator/locale/pref/pref-applicationManager.properties"/>
</stringbundleset>
<description id="appDescription"/>
<separator class="thin"/>
<hbox flex="1">
<listbox id="appList" onselect="gAppManagerDialog.onSelect();" flex="1"/>
<vbox>
<button id="remove"
label="&remove.label;"
accesskey="&remove.accesskey;"
command="cmd_delete"/>
<spacer flex="1"/>
</vbox>
</hbox>
<vbox id="appDetails">
<separator class="thin"/>
<label id="appType"/>
<textbox id="appLocation" readonly="true" class="plain"/>
</vbox>
</dialog>

File diff suppressed because it is too large Load Diff

View File

@ -1,151 +1,134 @@
<?xml version="1.0"?>
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
Version: MPL 1.1/GPL 2.0/LGPL 2.1
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla 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/MPL/
-
- 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 the Firefox Preferences System.
-
- The Initial Developer of the Original Code is
- Ben Goodger.
- Portions created by the Initial Developer are Copyright (C) 2005
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Ben Goodger <ben@mozilla.org>
- Jeff Walden <jwalden+code@mit.edu>.
- Asaf Romano <mozilla.mano@sent.com>
- Myk Melez <myk@mozilla.org>
- Robert Kaiser <kairo@kairo.at>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
The contents of this file are subject to the Mozilla 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/MPL/
<!DOCTYPE overlay [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd"> %brandDTD;
<!ENTITY % prefApplicationsDTD SYSTEM "chrome://communicator/locale/pref/pref-applications.dtd"> %prefApplicationsDTD;
]>
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.
<overlay id="ApplicationsPaneOverlay"
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
The Original Code is Mozilla Communicator client code, released
March 31, 1998.
<prefpane id="applications_pane"
label="&pref.applications.title;"
script="chrome://communicator/content/pref/pref-applications.js">
The Initial Developer of the Original Code is
Netscape Communications Corporation.
Portions created by the Initial Developer are Copyright (C) 1998-1999
the Initial Developer. All Rights Reserved.
<preferences id="feedsPreferences">
<preference id="browser.feeds.handler"
name="browser.feeds.handler"
type="string"/>
<preference id="browser.feeds.handler.default"
name="browser.feeds.handler.default"
type="string"/>
<preference id="browser.feeds.handlers.application"
name="browser.feeds.handlers.application"
type="file"/>
<preference id="browser.feeds.handlers.webservice"
name="browser.feeds.handlers.webservice"
type="string"/>
Contributor(s):
Ben Goodger <ben@netscape.com>, original implementor
<preference id="browser.videoFeeds.handler"
name="browser.videoFeeds.handler"
type="string"/>
<preference id="browser.videoFeeds.handler.default"
name="browser.videoFeeds.handler.default"
type="string"/>
<preference id="browser.videoFeeds.handlers.application"
name="browser.videoFeeds.handlers.application"
type="file"/>
<preference id="browser.videoFeeds.handlers.webservice"
name="browser.videoFeeds.handlers.webservice"
type="string"/>
Alternatively, the contents of this file may be used under the terms of
either of the GNU General Public License Version 2 or later (the "GPL"),
or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
in which case the provisions of the GPL or the LGPL are applicable instead
of those above. If you wish to allow use of your version of this file only
under the terms of either the GPL or the LGPL, and not to allow others to
use your version of this file under the terms of the MPL, indicate your
decision by deleting the provisions above and replace them with the notice
and other provisions required by the GPL or the LGPL. If you do not delete
the provisions above, a recipient may use your version of this file under
the terms of any one of the MPL, the GPL or the LGPL.
<preference id="browser.audioFeeds.handler"
name="browser.audioFeeds.handler"
type="string"/>
<preference id="browser.audioFeeds.handler.default"
name="browser.audioFeeds.handler.default"
type="string"/>
<preference id="browser.audioFeeds.handlers.application"
name="browser.audioFeeds.handlers.application"
type="file"/>
<preference id="browser.audioFeeds.handlers.webservice"
name="browser.audioFeeds.handlers.webservice"
type="string"/>
***** END LICENSE BLOCK ***** -->
<preference id="pref.downloads.disable_button.edit_actions"
name="pref.downloads.disable_button.edit_actions"
type="bool"/>
</preferences>
<?xml-stylesheet href="chrome://communicator/skin/" type="text/css"?>
<stringbundle id="bundleBrand" src="chrome://branding/locale/brand.properties"/>
<stringbundle id="bundlePrefApplications"
src="chrome://communicator/locale/pref/pref-applications.properties"/>
<!DOCTYPE page SYSTEM "chrome://communicator/locale/pref/pref-applications.dtd" >
<hbox align="center">
<label accesskey="&filter.accesskey;" control="filter">&filter.label;</label>
<textbox id="filter" flex="1" type="timed" timeout="500"
oncommand="gApplicationsPane.filter();"/>
<button id="clearFilter" icon="clear" label="&clear.label;" accesskey="&clear.accesskey;"
oncommand="gApplicationsPane.clearFilter();" disabled="true"/>
</hbox>
<page xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
onload="parent.initPanel('chrome://communicator/content/pref/pref-applications.xul');"
headertitle="&pref.applications.title;">
<separator class="thin"/>
<stringbundle id="bundle_prefApplications"
src="chrome://communicator/locale/pref/pref-applications.properties"/>
<script type="application/x-javascript" src="chrome://communicator/content/pref/pref-applications.js"/>
<script type="application/x-javascript" src="chrome://communicator/content/pref/overrideHandler.js"/>
<script type="application/x-javascript">
<![CDATA[
var _elementIDs = ["useNSPluginFinder"];
]]>
</script>
<groupbox flex="1">
<caption label="&pref.applications.caption;"/>
<vbox flex="1">
<label value="&fileTypes.label;" control="appList"/>
<hbox flex="1">
<tree id="appList" flex="1" seltype="single" hidecolumnpicker="true"
datasources="rdf:null" ref="urn:mimetypes"
flags="dont-build-content"
onselect="selectApplication();">
<treecols>
<treecol sort="?value" sortActive="true" sortDirection="ascending"
flex="1" hideheader="true"/>
</treecols>
<template>
<rule>
<conditions>
<content uri="?uri"/>
<!-- the RDF Seq of MIME types -->
<triple subject="?uri" object="?MIME-types"
predicate="http://home.netscape.com/NC-rdf#MIME-types"/>
<!-- each MIME type -->
<member container="?MIME-types" child="?type"/>
<!-- MIME type value -->
<triple subject="?type" object="?value"
predicate="http://home.netscape.com/NC-rdf#value"/>
<triple subject="?type" object="?editable"
predicate="http://home.netscape.com/NC-rdf#editable"/>
</conditions>
<action>
<treechildren>
<treeitem uri="?type">
<treerow>
<treecell label="?value"/>
</treerow>
</treeitem>
</treechildren>
</action>
</rule>
</template>
</tree>
<vbox>
<button id="newTypeButton"
label="&newTypeButton.label;" accesskey="&newTypeButton.accesskey;"
oncommand="newType();"/>
<button id="editButton"
label="&editButton.label;" accesskey="&editButton.accesskey;"
oncommand="editType();"/>
<button id="removeButton"
label="&removeButton.label;" accesskey="&removeButton.accesskey;"
oncommand="removeType();"/>
</vbox>
</hbox>
<groupbox orient="horizontal">
<caption label="&file;"/>
<hbox flex="1">
<vbox style="width: 40px; height: 40px;" pack="center" align="center">
<image id="contentTypeImage"/>
</vbox>
<grid flex="1">
<columns>
<column/>
<column flex="1"/>
</columns>
<rows>
<row align="center">
<label value="&mimeDesc;"/>
<label id="mimeDesc" crop="right" flex="1"/>
</row>
<row align="center">
<label value="&exten;"/>
<label id="extension" crop="right"/>
</row>
<row align="center">
<label value="&handle;" accesskey="&handle.accesskey;" control="handler"/>
<textbox id="handler" readonly="true" flex="1"/>
</row>
</rows>
</grid>
</hbox>
</groupbox>
</vbox>
</groupbox>
<groupbox id="pluginFinderBox">
<caption label="&plugins.label;"/>
<vbox>
<checkbox id="useNSPluginFinder" label="&pluginFinder.label;"
accesskey="&pluginFinder.accesskey;"
prefstring="application.use_ns_plugin_finder"/>
<description>&pluginFinderDesc.label;</description>
</vbox>
</groupbox>
</page>
<listbox id="handlersView" persist="lastSelectedType" flex="1"
preference="pref.downloads.disable_button.edit_actions"
onselect="gApplicationsPane.onSelectionChanged();"
oncommand="gApplicationsPane.onSelectAction(event.originalTarget);">
<listcols>
<listcol width="1" flex="1"/>
<listcol width="1" flex="1"/>
</listcols>
<listhead>
<listheader id="typeColumn" label="&typeColumn.label;" value="type"
accesskey="&typeColumn.accesskey;" persist="sortDirection"
onclick="gApplicationsPane.sort(event);"
sortDirection="ascending"/>
<listheader id="actionColumn" label="&actionColumn2.label;" value="action"
accesskey="&actionColumn2.accesskey;" persist="sortDirection"
onclick="gApplicationsPane.sort(event);"/>
</listhead>
</listbox>
</prefpane>
</overlay>

View File

@ -38,6 +38,8 @@
<?xml-stylesheet type="text/css" href="chrome://communicator/skin/"?>
<?xml-stylesheet type="text/css" href="chrome://communicator/content/communicator.css"?>
<?xml-stylesheet type="text/css" href="chrome://communicator/content/pref/prefpanels.css"?>
<?xml-stylesheet type="text/css" href="chrome://communicator/skin/prefpanels.css"?>
<!DOCTYPE prefwindow [
<!ENTITY % dtd1 SYSTEM "chrome://communicator/locale/pref/pref.dtd" > %dtd1;
@ -98,6 +100,7 @@
</treechildren>
</treeitem>
-->
<!-- Browser items -->
<treeitem container="true"
id="navigator"
label="&navigator.label;"
@ -112,8 +115,13 @@
<!-- commenting out yet unmigrated panels
<treeitem label="&languages.label;"
url="chrome://communicator/content/pref/pref-languages.xul"/>
<treeitem label="&applications.label;"
-->
<treeitem id="applicationsItem"
label="&applications.label;"
prefpane="applications_pane"
helpTopic="navigator_pref_helper_applications"
url="chrome://communicator/content/pref/pref-applications.xul"/>
<!-- commenting out yet unmigrated panels
<treeitem label="&smartBrowse.label;"
url="chrome://communicator/content/pref/pref-smart_browsing.xul"/>
<treeitem label="&search.label;"

View File

@ -0,0 +1,43 @@
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Mozilla 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/MPL/
*
* 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 the Mozilla browser.
*
* The Initial Developer of the Original Code is Mozilla.
* Portions created by the Initial Developer are Copyright (C) 2007
* the Initial Developer. All Rights Reserved.
*
* Contributor(s):
* Myk Melez <myk@mozilla.org>
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPL"), or
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the MPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the MPL, the GPL or the LGPL.
*
* ***** END LICENSE BLOCK ***** */
#handlersView > listitem {
-moz-binding: url("chrome://communicator/content/pref/prefpanels.xml#handler");
}
.listcell-iconic.handler-action[selected="true"] {
-moz-binding: url("chrome://communicator/content/pref/prefpanels.xml#handler-action-selected");
}

View File

@ -0,0 +1,89 @@
<?xml version="1.0"?>
<!-- ***** BEGIN LICENSE BLOCK *****
- Version: MPL 1.1/GPL 2.0/LGPL 2.1
-
- The contents of this file are subject to the Mozilla 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/MPL/
-
- 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 the Mozilla browser.
-
- The Initial Developer of the Original Code is Mozilla.
- Portions created by the Initial Developer are Copyright (C) 2007
- the Initial Developer. All Rights Reserved.
-
- Contributor(s):
- Myk Melez <myk@mozilla.org>
- Robert Kaiser <kairo@kairo.at>
-
- Alternatively, the contents of this file may be used under the terms of
- either the GNU General Public License Version 2 or later (the "GPL"), or
- the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- in which case the provisions of the GPL or the LGPL are applicable instead
- of those above. If you wish to allow use of your version of this file only
- under the terms of either the GPL or the LGPL, and not to allow others to
- use your version of this file under the terms of the MPL, indicate your
- decision by deleting the provisions above and replace them with the notice
- and other provisions required by the LGPL or the GPL. If you do not delete
- the provisions above, a recipient may use your version of this file under
- the terms of any one of the MPL, the GPL or the LGPL.
-
- ***** END LICENSE BLOCK ***** -->
<!DOCTYPE bindings [
<!ENTITY % brandDTD SYSTEM "chrome://branding/locale/brand.dtd">
%brandDTD;
<!ENTITY % applicationsDTD SYSTEM "chrome://communicator/locale/pref/pref-applications.dtd">
%applicationsDTD;
]>
<bindings id="handlerBindings"
xmlns="http://www.mozilla.org/xbl"
xmlns:xul="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
xmlns:xbl="http://www.mozilla.org/xbl">
<binding id="handler" extends="chrome://global/content/bindings/listbox.xml#listitem">
<implementation>
<constructor>
<![CDATA[
if (!this.parentNode.disabled &&
this.type == this.parentNode.getAttribute("lastSelectedType"))
this.parentNode.selectedItem = this;
]]>
</constructor>
<property name="type" readonly="true">
<getter>
return this.getAttribute("type");
</getter>
</property>
</implementation>
<content>
<xul:listcell class="listcell-iconic handler-type" align="center" crop="end"
xbl:inherits="tooltiptext=typeDescription,label=typeDescription,image=typeIcon,typeClass"/>
<xul:listcell anonid="action-cell" class="listcell-iconic handler-action" align="center" crop="end"
xbl:inherits="tooltiptext=actionDescription,label=actionDescription,image=actionIcon,appHandlerIcon,selected"/>
</content>
</binding>
<binding id="handler-action-selected" extends="chrome://global/content/bindings/listbox.xml#listcell">
<content>
<xul:menulist anonid="action-menu" class="actionsMenu" flex="1" crop="end" selectedIndex="1">
<xul:menupopup/>
</xul:menulist>
</content>
<implementation>
<constructor>
document.getElementById('applications_pane').gApplicationsPane.rebuildActionsMenu();
</constructor>
</implementation>
</binding>
</bindings>

View File

@ -94,7 +94,7 @@
</treeitem>
<treeitem>
<treerow>
<treecell url="chrome://communicator/content/pref/pref-applications.xul" label="&applications.label;"/>
<treecell label="(Migrated: &applications.label;)"/>
</treerow>
</treeitem>
<treeitem>

View File

@ -18,3 +18,12 @@ browser.translation.serviceDomain=translate.google.com
#config.js
#
startup.homepage_override_url=http://www.seamonkey-project.org/start/
# This is the default set of web based feed handlers shown in the reader
# selection UI
browser.contentHandlers.types.0.title=Bloglines
browser.contentHandlers.types.0.uri=http://www.bloglines.com/login?r=/sub/%s
browser.contentHandlers.types.1.title=My Yahoo
browser.contentHandlers.types.1.uri=http://add.my.yahoo.com/rss?url=%s
browser.contentHandlers.types.2.title=Google
browser.contentHandlers.types.2.uri=http://fusion.google.com/add?feedurl=%s

View File

@ -0,0 +1,4 @@
<!ENTITY appManager.title "Application details">
<!ENTITY appManager.style "width: 40ch; min-height: 20em;">
<!ENTITY remove.label "Remove">
<!ENTITY remove.accesskey "R">

View File

@ -0,0 +1,6 @@
descriptionHandleProtocol=The following applications can be used to handle %S links
descriptionHandleWebFeeds=The following applications can be used to handle Web Feeds
descriptionHandleFile=The following applications can be used to handle %S content
descriptionWebApp=This web application is hosted at:
descriptionLocalApp=This application is located at:

View File

@ -1,23 +1,14 @@
<!-- extracted from content/pref-applications.xul -->
<!--LOCALIZATION NOTE : FILE The Applications prefs dialog -->
<!ENTITY pref.applications.title "Helper Applications">
<!ENTITY pref.applications.caption "Specify how to handle files of each file type">
<!ENTITY fileTypes.label "File types:">
<!ENTITY aimLaunchSelect.label "AOL Instant Messenger Launch">
<!ENTITY newTypeButton.label "New Type...">
<!ENTITY newTypeButton.accesskey "n">
<!ENTITY editButton.label "Edit...">
<!ENTITY editButton.accesskey "E">
<!ENTITY removeButton.label "Remove">
<!ENTITY removeButton.accesskey "R">
<!ENTITY file "File Type Details">
<!ENTITY exten "Extension(s):">
<!ENTITY mimeDesc "Description:">
<!ENTITY handle "When encountered:">
<!ENTITY handle.accesskey "W">
<!ENTITY fileOpening.label "Opening files">
<!ENTITY plugins.label "Plugin Finder Service">
<!ENTITY pluginFinder.label "Always use the Plugin Finder Service (PFS) to get plugins.">
<!ENTITY pluginFinder.accesskey "A">
<!ENTITY pluginFinderDesc.label "If this option is not checked, the PFS is used only when a plugin location is not specified by the web page that requires the plugin.">
<!ENTITY pref.applications.title "Helper Applications">
<!ENTITY typeColumn.label "Content Type">
<!ENTITY typeColumn.accesskey "T">
<!ENTITY actionColumn2.label "Action">
<!ENTITY actionColumn2.accesskey "A">
<!ENTITY filter.label "Search:">
<!ENTITY filter.accesskey "S">
<!ENTITY clear.label "Clear">
<!ENTITY clear.accesskey "l">

View File

@ -1,23 +1,30 @@
# foo
#### Applications
saveToDisk=Save these files to disk
useSystemDefault=Open these files using the default application
useHelperApp=Open these files with %S
handleInternally=Display files of this type in the browser
fileEnding=%S file
saveFile=Save File
chooseHandler=Choose Helper Application
programsFilter=Programs
# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
useApp=Use %S
useDefault=Use %S (default)
canHandleInternallyTitle=Warning
canHandleInternally=%brand% can handle this type internally. For such types, a Helper Application will only be invoked if the server requests external handling.
canHandleInternallyContinue=&Proceed anyway
useOtherApp=Use other…
fpTitleChooseApp=Select Helper Application
manageApp=Application Details…
webFeed=Web Feed
videoPodcastFeed=Video Podcast
audioPodcastFeed=Podcast
alwaysAsk=Always ask
handlerExists=A helper already exists for the MIME type '%mime%'. Do you want to replace it?
handlerExistsTitle=Helper Application Exists
handlerExistsReplace=&Replace
# LOCALIZATION NOTE (usePluginIn):
# %1$S = plugin name (for example "QuickTime Plugin-in 7.2")
# %2$S = brandShortName from brand.properties (for example "Minefield")
usePluginIn=Use %S (in %S)
emptyMIMEType=You must specify a MIME type.
# LOCALIZATION NOTE (previewInApp, addLiveBookmarksInApp): %S = brandShortName
previewInApp=Preview in %S
addLiveBookmarksInApp=Add Live Bookmarks in %S
removeHandlerTitle=Remove File Type
removeHandler=If you remove a registered type, the helper will no longer be able to automatically handle files of this type. %n%nAre you sure you want to remove this file type?
removeHandlerYes=&Remove
# LOCALIZATION NOTE (typeDescriptionWithType):
# %1$S = type description (for example "Portable Document Format")
# %2$S = type (for example "application/pdf")
typeDescriptionWithType=%S (%S)

View File

@ -142,6 +142,9 @@
locale/@AB_CD@/communicator/pref/pref-appearance.dtd (%chrome/common/pref/pref-appearance.dtd)
locale/@AB_CD@/communicator/pref/pref-applications.dtd (%chrome/common/pref/pref-applications.dtd)
locale/@AB_CD@/communicator/pref/pref-applications.properties (%chrome/common/pref/pref-applications.properties)
locale/@AB_CD@/communicator/pref/pref-applicationManager.dtd (%chrome/common/pref/pref-applicationManager.dtd)
locale/@AB_CD@/communicator/pref/pref-applicationManager.properties (%chrome/common/pref/pref-applicationManager.properties)
# XXX: remove line below once we have a helper app dialog that doesn't need it (comes with toolkit download manager)
locale/@AB_CD@/communicator/pref/pref-applications-edit.dtd (%chrome/common/pref/pref-applications-edit.dtd)
locale/@AB_CD@/communicator/pref/pref-cache.dtd (%chrome/common/pref/pref-cache.dtd)
locale/@AB_CD@/communicator/pref/pref-charset.dtd (%chrome/common/pref/pref-charset.dtd)

View File

@ -40,34 +40,6 @@
====================================================================== */
@namespace url("http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul");
/* ::::: Themes ::::: */
#skinsTree {
height: 80px;
}
*|*.themesLink {
margin-left: 5px;
text-decoration: underline;
color: blue;
cursor: pointer;
}
*|*.themesLink:active {
color: red;
}
#previewImageContainer {
height: 93px;
padding: 1px;
}
#previewImage {
max-width: 355px;
min-width: 355px;
max-height: 85px;
min-height: 85px;
}
/* ::::: Fonts ::::: */
@ -80,8 +52,51 @@
-moz-box-flex: 1;
}
/* ::::: Mouse Wheel ::::: */
#mouseWheelMode {
width: 9em;
/* ::::: Applications ::::: */
.handler-action > .menu-iconic-left {
/**
* Make the icons appear.
* Note: we display the icon box for every item whether or not it has an icon
* so the labels of all the items align vertically.
*/
display: -moz-box;
min-width: 16px;
}
/* Set icons on app pane elements */
.handler-action > .listcell-icon,
.handler-type > .listcell-icon {
height: 16px;
width: 16px;
}
.handler-action[appHandlerIcon="app"] {
list-style-image: url("chrome://communicator/skin/icons/application.png");
}
.handler-action[appHandlerIcon="ask"] {
list-style-image: url("chrome://communicator/skin/icons/alwaysAsk.png");
}
.handler-action[appHandlerIcon="save"] {
list-style-image: url("chrome://communicator/skin/icons/save.png");
}
.handler-action[appHandlerIcon="feed"] {
list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}
.handler-action[appHandlerIcon="plugin"] {
list-style-image: url("chrome://communicator/skin/icons/plugin.png");
}
.handler-type[typeClass="unknown"] {
list-style-image: url("moz-icon://goat?size=16");
}
.handler-type[typeClass="webFeed"],
.handler-type[typeClass="videoPodcastFeed"],
.handler-type[typeClass="audioPodcastFeed"] {
list-style-image: url("chrome://communicator/skin/icons/feedIcon16.png");
}

View File

@ -70,6 +70,11 @@ classic.jar:
skin/classic/communicator/icons/lock-insecure.png (communicator/icons/lock-insecure.png)
skin/classic/communicator/icons/loading.gif (communicator/icons/loading.gif)
skin/classic/communicator/icons/communicatoricons.png (communicator/icons/communicatoricons.png)
skin/classic/communicator/icons/alwaysAsk.png (communicator/icons/alwaysAsk.png)
skin/classic/communicator/icons/application.png (communicator/icons/application.png)
skin/classic/communicator/icons/feedIcon16.png (communicator/icons/feedIcon16.png)
skin/classic/communicator/icons/plugin.png (communicator/icons/plugin.png)
skin/classic/communicator/icons/save.png (communicator/icons/save.png)
skin/classic/communicator/icons/smileys/smile_n.gif (communicator/icons/smileys/smile_n.gif)
skin/classic/communicator/icons/smileys/frown_n.gif (communicator/icons/smileys/frown_n.gif)
skin/classic/communicator/icons/smileys/wink_n.gif (communicator/icons/smileys/wink_n.gif)