mirror of
https://abf.rosa.ru/djam/firefox-esr91.git
synced 2025-02-24 17:42:59 +00:00
update kde patches
This commit is contained in:
parent
1c497f4d2e
commit
025a54292b
3 changed files with 200 additions and 213 deletions
|
@ -1,11 +1,11 @@
|
|||
# HG changeset patch
|
||||
# Parent fd5629206dcf3f64d85ab177be6bc6076f0f1619
|
||||
# Parent 4311c6bdf61ac317bc60b25cd89ff67662a75049
|
||||
|
||||
diff --git a/browser/base/content/browser-kde.xul b/browser/base/content/browser-kde.xul
|
||||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/browser/base/content/browser-kde.xul
|
||||
@@ -0,0 +1,1175 @@
|
||||
@@ -0,0 +1,1160 @@
|
||||
+#filter substitution
|
||||
+<?xml version="1.0"?>
|
||||
+# -*- Mode: HTML -*-
|
||||
|
@ -77,6 +77,8 @@ new file mode 100644
|
|||
+
|
||||
+<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
|
||||
+
|
||||
+<script type="application/javascript" src="chrome://browser/content/downloads/downloads.js"/>
|
||||
+<script type="application/javascript" src="chrome://browser/content/downloads/indicator.js"/>
|
||||
+<script type="application/javascript" src="chrome://browser/content/places/editBookmarkOverlay.js"/>
|
||||
+
|
||||
+# All sets except for popupsets (commands, keys, stringbundles and broadcasters) *must* go into the
|
||||
|
@ -188,12 +190,6 @@ new file mode 100644
|
|||
+ <vbox>
|
||||
+ <label id="editBookmarkPanelTitle"/>
|
||||
+ <description id="editBookmarkPanelDescription"/>
|
||||
+ <hbox>
|
||||
+ <button id="editBookmarkPanelRemoveButton"
|
||||
+ class="editBookmarkPanelHeaderButton"
|
||||
+ oncommand="StarUI.removeBookmarkButtonCommand();"
|
||||
+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
|
||||
+ </hbox>
|
||||
+ </vbox>
|
||||
+ </row>
|
||||
+ <vbox id="editBookmarkPanelContent" flex="1" hidden="true"/>
|
||||
|
@ -204,15 +200,15 @@ new file mode 100644
|
|||
+ label="&editBookmark.done.label;"
|
||||
+ default="true"
|
||||
+ oncommand="StarUI.panel.hidePopup();"/>
|
||||
+ <button id="editBookmarkPanelDeleteButton"
|
||||
+ <button id="editBookmarkPanelRemoveButton"
|
||||
+ class="editBookmarkPanelBottomButton"
|
||||
+ label="&editBookmark.cancel.label;"
|
||||
+ oncommand="StarUI.cancelButtonOnCommand();"/>
|
||||
+ oncommand="StarUI.removeBookmarkButtonCommand();"
|
||||
+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
|
||||
+#else
|
||||
+ <button id="editBookmarkPanelDeleteButton"
|
||||
+ <button id="editBookmarkPanelRemoveButton"
|
||||
+ class="editBookmarkPanelBottomButton"
|
||||
+ label="&editBookmark.cancel.label;"
|
||||
+ oncommand="StarUI.cancelButtonOnCommand();"/>
|
||||
+ oncommand="StarUI.removeBookmarkButtonCommand();"
|
||||
+ accesskey="&editBookmark.removeBookmark.accessKey;"/>
|
||||
+ <button id="editBookmarkPanelDoneButton"
|
||||
+ class="editBookmarkPanelBottomButton"
|
||||
+ label="&editBookmark.done.label;"
|
||||
|
@ -471,6 +467,46 @@ new file mode 100644
|
|||
+
|
||||
+ <tooltip id="dynamic-shortcut-tooltip"
|
||||
+ onpopupshowing="UpdateDynamicShortcutTooltipText(this);"/>
|
||||
+
|
||||
+ <menupopup id="SyncedTabsSidebarContext">
|
||||
+ <menuitem label="&syncedTabs.context.openTab.label;"
|
||||
+ accesskey="&syncedTabs.context.openTab.accesskey;"
|
||||
+ id="syncedTabsOpenSelected"/>
|
||||
+ <menuitem label="&syncedTabs.context.bookmarkSingleTab.label;"
|
||||
+ accesskey="&syncedTabs.context.bookmarkSingleTab.accesskey;"
|
||||
+ id="syncedTabsBookmarkSelected"/>
|
||||
+ <menuseparator/>
|
||||
+ <menuitem label="&syncSyncNowItem.label;"
|
||||
+ accesskey="&syncSyncNowItem.accesskey;"
|
||||
+ id="syncedTabsRefresh"/>
|
||||
+ </menupopup>
|
||||
+ <menupopup id="SyncedTabsSidebarTabsFilterContext"
|
||||
+ class="textbox-contextmenu">
|
||||
+ <menuitem label="&undoCmd.label;"
|
||||
+ accesskey="&undoCmd.accesskey;"
|
||||
+ cmd="cmd_undo"/>
|
||||
+ <menuseparator/>
|
||||
+ <menuitem label="&cutCmd.label;"
|
||||
+ accesskey="&cutCmd.accesskey;"
|
||||
+ cmd="cmd_cut"/>
|
||||
+ <menuitem label="©Cmd.label;"
|
||||
+ accesskey="©Cmd.accesskey;"
|
||||
+ cmd="cmd_copy"/>
|
||||
+ <menuitem label="&pasteCmd.label;"
|
||||
+ accesskey="&pasteCmd.accesskey;"
|
||||
+ cmd="cmd_paste"/>
|
||||
+ <menuitem label="&deleteCmd.label;"
|
||||
+ accesskey="&deleteCmd.accesskey;"
|
||||
+ cmd="cmd_delete"/>
|
||||
+ <menuseparator/>
|
||||
+ <menuitem label="&selectAllCmd.label;"
|
||||
+ accesskey="&selectAllCmd.accesskey;"
|
||||
+ cmd="cmd_selectAll"/>
|
||||
+ <menuseparator/>
|
||||
+ <menuitem label="&syncSyncNowItem.label;"
|
||||
+ accesskey="&syncSyncNowItem.accesskey;"
|
||||
+ id="syncedTabsRefreshFilter"/>
|
||||
+ </menupopup>
|
||||
+ </popupset>
|
||||
+
|
||||
+#ifdef CAN_DRAW_IN_TITLEBAR
|
||||
|
@ -667,10 +703,6 @@ new file mode 100644
|
|||
+ <box id="notification-popup-box" hidden="true" align="center">
|
||||
+ <image id="default-notification-icon" class="notification-anchor-icon" role="button"
|
||||
+ aria-label="&urlbar.defaultNotificationAnchor.label;"/>
|
||||
+ <!-- NB: the identity-notification-icon is used for persona-based auth and preffed
|
||||
+ off by default. It hasn't been updated for some time and liable to being
|
||||
+ removed.-->
|
||||
+ <image id="identity-notification-icon" class="notification-anchor-icon" role="button"/>
|
||||
+ <image id="geo-notification-icon" class="notification-anchor-icon" role="button"
|
||||
+ aria-label="&urlbar.geolocationNotificationAnchor.label;"/>
|
||||
+ <image id="addons-notification-icon" class="notification-anchor-icon" role="button"
|
||||
|
@ -811,30 +843,6 @@ new file mode 100644
|
|||
+ command="Browser:ShowAllBookmarks"
|
||||
+ key="manBookmarkKb"/>
|
||||
+ <menuseparator/>
|
||||
+ <menuitem id="BMB_subscribeToPageMenuitem"
|
||||
+#ifndef XP_MACOSX
|
||||
+ class="menuitem-iconic subviewbutton"
|
||||
+#else
|
||||
+ class="subviewbutton"
|
||||
+#endif
|
||||
+ label="&subscribeToPageMenuitem.label;"
|
||||
+ oncommand="return FeedHandler.subscribeToFeed(null, event);"
|
||||
+ onclick="checkForMiddleClick(this, event);"
|
||||
+ observes="singleFeedMenuitemState"/>
|
||||
+ <menu id="BMB_subscribeToPageMenupopup"
|
||||
+#ifndef XP_MACOSX
|
||||
+ class="menu-iconic subviewbutton"
|
||||
+#else
|
||||
+ class="subviewbutton"
|
||||
+#endif
|
||||
+ label="&subscribeToPageMenupopup.label;"
|
||||
+ observes="multipleFeedsMenuState">
|
||||
+ <menupopup id="BMB_subscribeToPageSubmenuMenupopup"
|
||||
+ onpopupshowing="return FeedHandler.buildFeedList(event.target);"
|
||||
+ oncommand="return FeedHandler.subscribeToFeed(null, event);"
|
||||
+ onclick="checkForMiddleClick(this, event);"/>
|
||||
+ </menu>
|
||||
+ <menuseparator/>
|
||||
+ <menu id="BMB_bookmarksToolbar"
|
||||
+ class="menu-iconic bookmark-item subviewbutton"
|
||||
+ label="&personalbarCmd.label;"
|
||||
|
@ -1133,29 +1141,6 @@ new file mode 100644
|
|||
+
|
||||
+ <vbox id="browser-bottombox" layer="true">
|
||||
+ <notificationbox id="global-notificationbox" notificationside="bottom"/>
|
||||
+ <toolbar id="developer-toolbar"
|
||||
+ hidden="true">
|
||||
+#ifdef XP_MACOSX
|
||||
+ <toolbarbutton id="developer-toolbar-closebutton"
|
||||
+ class="devtools-closebutton"
|
||||
+ oncommand="DeveloperToolbar.hide();"
|
||||
+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
|
||||
+#endif
|
||||
+ <stack class="gclitoolbar-stack-node" flex="1">
|
||||
+ <textbox class="gclitoolbar-input-node" rows="1"/>
|
||||
+ <hbox class="gclitoolbar-complete-node"/>
|
||||
+ </stack>
|
||||
+ <toolbarbutton id="developer-toolbar-toolbox-button"
|
||||
+ class="developer-toolbar-button"
|
||||
+ observes="devtoolsMenuBroadcaster_DevToolbox"
|
||||
+ tooltiptext="&devToolbarToolsButton.tooltip;"/>
|
||||
+#ifndef XP_MACOSX
|
||||
+ <toolbarbutton id="developer-toolbar-closebutton"
|
||||
+ class="devtools-closebutton"
|
||||
+ oncommand="DeveloperToolbar.hide();"
|
||||
+ tooltiptext="&devToolbarCloseButton.tooltiptext;"/>
|
||||
+#endif
|
||||
+ </toolbar>
|
||||
+ </vbox>
|
||||
+
|
||||
+ <svg:svg height="0">
|
||||
|
@ -1266,7 +1251,7 @@ diff --git a/browser/components/build/nsModule.cpp b/browser/components/build/ns
|
|||
diff --git a/browser/components/preferences/in-content/main.js b/browser/components/preferences/in-content/main.js
|
||||
--- a/browser/components/preferences/in-content/main.js
|
||||
+++ b/browser/components/preferences/in-content/main.js
|
||||
@@ -19,16 +19,22 @@ var gMainPane = {
|
||||
@@ -23,16 +23,22 @@ var gMainPane = {
|
||||
init: function ()
|
||||
{
|
||||
function setEventListener(aId, aEventType, aCallback)
|
||||
|
@ -1287,12 +1272,12 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
|
|||
// In Windows 8 we launch the control panel since it's the only
|
||||
// way to get all file type association prefs. So we don't know
|
||||
// when the user will select the default. We refresh here periodically
|
||||
// in case the default changes. On other Windows OS's defaults can also
|
||||
// in case the default changes. On other Windows OS's defaults can also
|
||||
// be set while the prefs are open.
|
||||
@@ -704,16 +710,27 @@ var gMainPane = {
|
||||
*/
|
||||
setDefaultBrowser: function()
|
||||
{
|
||||
@@ -736,16 +742,27 @@ var gMainPane = {
|
||||
let alwaysCheckPref = document.getElementById("browser.shell.checkDefaultBrowser");
|
||||
alwaysCheckPref.value = true;
|
||||
|
||||
let shellSvc = getShellService();
|
||||
if (!shellSvc)
|
||||
return;
|
||||
|
@ -1300,10 +1285,10 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
|
|||
shellSvc.setDefaultBrowser(true, false);
|
||||
+ if (kde_session == 1) {
|
||||
+ var shellObj = Components.classes["@mozilla.org/file/local;1"]
|
||||
+ .createInstance(Components.interfaces.nsILocalFile);
|
||||
+ .createInstance(Components.interfaces.nsILocalFile);
|
||||
+ shellObj.initWithPath("/usr/bin/kwriteconfig");
|
||||
+ var process = Components.classes["@mozilla.org/process/util;1"]
|
||||
+ .createInstance(Components.interfaces.nsIProcess);
|
||||
+ .createInstance(Components.interfaces.nsIProcess);
|
||||
+ process.init(shellObj);
|
||||
+ var args = ["--file", "kdeglobals", "--group", "General", "--key",
|
||||
+ "BrowserApplication", "firefox"];
|
||||
|
@ -1313,8 +1298,8 @@ diff --git a/browser/components/preferences/in-content/main.js b/browser/compone
|
|||
Cu.reportError(ex);
|
||||
return;
|
||||
}
|
||||
let selectedIndex =
|
||||
shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
|
||||
|
||||
let selectedIndex = shellSvc.isDefaultBrowser(false, true) ? 1 : 0;
|
||||
document.getElementById("setDefaultPane").selectedIndex = selectedIndex;
|
||||
}
|
||||
diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build
|
||||
|
@ -1632,7 +1617,7 @@ new file mode 100644
|
|||
diff --git a/browser/installer/package-manifest.in b/browser/installer/package-manifest.in
|
||||
--- a/browser/installer/package-manifest.in
|
||||
+++ b/browser/installer/package-manifest.in
|
||||
@@ -703,16 +703,17 @@
|
||||
@@ -697,16 +697,17 @@
|
||||
@RESPATH@/greprefs.js
|
||||
@RESPATH@/defaults/autoconfig/prefcalls.js
|
||||
@RESPATH@/browser/defaults/permissions
|
|
@ -45,8 +45,8 @@ Source4: %{name}.desktop
|
|||
Source9: kde.js
|
||||
Source1000: README.urpmi
|
||||
# Patches for kde integration of FF
|
||||
Patch11: firefox-46-kde.patch
|
||||
Patch12: mozilla-46-kde.patch
|
||||
Patch11: firefox-47-kde.patch
|
||||
Patch12: mozilla-47-kde.patch
|
||||
#Patch13: mozilla-kde-background.patch
|
||||
Patch34: xulrunner_nojit.patch
|
||||
Patch35: firefox-37-build-with-time-independent-uuids.patch
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# HG changeset patch
|
||||
# Parent 61cdc9af8ceaf75083e751e0d6497feddc26f7ba
|
||||
# Parent f2726ebfae7cdded8e7ca6030829b0a3fae4e438
|
||||
Description: Add KDE integration to Firefox (toolkit parts)
|
||||
Author: Wolfgang Rosenauer <wolfgang@rosenauer.org>
|
||||
Author: Lubos Lunak <lunak@suse.com>
|
||||
|
@ -27,7 +27,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
|||
#include "prefread.h"
|
||||
#include "prefapi_private_data.h"
|
||||
|
||||
@@ -1135,16 +1136,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
||||
@@ -1138,16 +1139,34 @@ pref_LoadPrefsInDir(nsIFile* aDir, char
|
||||
|
||||
static nsresult pref_LoadPrefsInDirList(const char *listId)
|
||||
{
|
||||
|
@ -62,7 +62,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
|||
return NS_OK;
|
||||
|
||||
bool hasMore;
|
||||
@@ -1160,17 +1179,17 @@ static nsresult pref_LoadPrefsInDirList(
|
||||
@@ -1163,17 +1182,17 @@ static nsresult pref_LoadPrefsInDirList(
|
||||
|
||||
nsAutoCString leaf;
|
||||
path->GetNativeLeafName(leaf);
|
||||
|
@ -81,7 +81,7 @@ diff --git a/modules/libpref/Preferences.cpp b/modules/libpref/Preferences.cpp
|
|||
{
|
||||
nsZipItemPtr<char> manifest(jarReader, name, true);
|
||||
NS_ENSURE_TRUE(manifest.Buffer(), NS_ERROR_NOT_AVAILABLE);
|
||||
@@ -1264,24 +1283,36 @@ static nsresult pref_InitInitialObjects(
|
||||
@@ -1267,24 +1286,36 @@ static nsresult pref_InitInitialObjects(
|
||||
/* these pref file names should not be used: we process them after all other application pref files for backwards compatibility */
|
||||
static const char* specialFiles[] = {
|
||||
#if defined(XP_MACOSX)
|
||||
|
@ -325,7 +325,7 @@ new file mode 100644
|
|||
+ 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="dialog" extends="chrome://global/content/bindings/general.xml#root-element">
|
||||
+ <resources>
|
||||
+ <stylesheet src="chrome://global/skin/dialog.css"/>
|
||||
|
@ -334,10 +334,10 @@ new file mode 100644
|
|||
+ <xul:vbox class="box-inherit dialog-content-box" flex="1">
|
||||
+ <children/>
|
||||
+ </xul:vbox>
|
||||
+
|
||||
+
|
||||
+ <xul:hbox class="dialog-button-box" anonid="buttons"
|
||||
+ xbl:inherits="pack=buttonpack,align=buttonalign,dir=buttondir,orient=buttonorient"
|
||||
+#ifdef XP_UNIX_GNOME
|
||||
+#ifdef XP_UNIX
|
||||
+ >
|
||||
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
|
||||
|
@ -349,12 +349,12 @@ new file mode 100644
|
|||
+#elif XP_UNIX
|
||||
+ >
|
||||
+ <xul:button dlgtype="help" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
|
||||
+ <xul:spacer anonid="spacer" flex="1"/>
|
||||
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
|
||||
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="cancel" class="dialog-button"/>
|
||||
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
|
||||
+ <xul:spacer anonid="spacer" flex="1"/>
|
||||
+ <xul:button dlgtype="accept" class="dialog-button" xbl:inherits="disabled=buttondisabledaccept"/>
|
||||
+ <xul:button dlgtype="extra1" class="dialog-button" hidden="true"/>
|
||||
+ <xul:button dlgtype="cancel" class="dialog-button"/>
|
||||
+ <xul:button dlgtype="disclosure" class="dialog-button" hidden="true"/>
|
||||
+#else
|
||||
+ pack="end">
|
||||
+ <xul:button dlgtype="extra2" class="dialog-button" hidden="true"/>
|
||||
|
@ -403,7 +403,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="cancelDialog">
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
|
@ -411,7 +411,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="getButton">
|
||||
+ <parameter name="aDlgType"/>
|
||||
+ <body>
|
||||
|
@ -462,7 +462,7 @@ new file mode 100644
|
|||
+ <![CDATA[
|
||||
+ var xOffset = screen.availWidth/2 - window.outerWidth/2;
|
||||
+ var yOffset = screen.availHeight/2 - window.outerHeight/2; //(opener.outerHeight *2)/10;
|
||||
+
|
||||
+
|
||||
+ xOffset = xOffset > 0 ? xOffset : 0;
|
||||
+ yOffset = yOffset > 0 ? yOffset : 0;
|
||||
+ window.moveTo(xOffset, yOffset);
|
||||
|
@ -534,7 +534,7 @@ new file mode 100644
|
|||
+ setTimeout(focusInit, 0);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+ </method>
|
||||
+
|
||||
+ <property name="mStrBundle">
|
||||
+ <getter>
|
||||
|
@ -549,7 +549,7 @@ new file mode 100644
|
|||
+ return this._mStrBundle;
|
||||
+ ]]></getter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <method name="_configureButtons">
|
||||
+ <parameter name="aButtons"/>
|
||||
+ <body>
|
||||
|
@ -621,7 +621,7 @@ new file mode 100644
|
|||
+
|
||||
+ // ensure that hitting enter triggers the default button command
|
||||
+ this.defaultButton = this.defaultButton;
|
||||
+
|
||||
+
|
||||
+ // if there is a special button configuration, use it
|
||||
+ if (aButtons) {
|
||||
+ // expect a comma delimited list of dlgtype values
|
||||
|
@ -634,7 +634,7 @@ new file mode 100644
|
|||
+ shown[list[i].replace(/ /g, "")] = true;
|
||||
+
|
||||
+ // hide/show the buttons we want
|
||||
+ for (dlgtype in buttons)
|
||||
+ for (dlgtype in buttons)
|
||||
+ buttons[dlgtype].hidden = !shown[dlgtype];
|
||||
+
|
||||
+ let { AppConstants } =
|
||||
|
@ -682,7 +682,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="_doButtonCommand">
|
||||
+ <parameter name="aDlgType"/>
|
||||
+ <body>
|
||||
|
@ -706,17 +706,17 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="_fireButtonEvent">
|
||||
+ <parameter name="aDlgType"/>
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ var event = document.createEvent("Events");
|
||||
+ event.initEvent("dialog"+aDlgType, true, true);
|
||||
+
|
||||
+
|
||||
+ // handle dom event handlers
|
||||
+ var noCancel = this.dispatchEvent(event);
|
||||
+
|
||||
+
|
||||
+ // handle any xml attribute event handlers
|
||||
+ var handler = this.getAttribute("ondialog"+aDlgType);
|
||||
+ if (handler != "") {
|
||||
|
@ -725,7 +725,7 @@ new file mode 100644
|
|||
+ if (returned == false)
|
||||
+ noCancel = false;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ return noCancel;
|
||||
+ ]]>
|
||||
+ </body>
|
||||
|
@ -746,7 +746,7 @@ new file mode 100644
|
|||
+ </method>
|
||||
+
|
||||
+ </implementation>
|
||||
+
|
||||
+
|
||||
+ <handlers>
|
||||
+ <handler event="keypress" keycode="VK_RETURN"
|
||||
+ group="system" action="this._hitEnter(event);"/>
|
||||
|
@ -782,7 +782,7 @@ diff --git a/toolkit/content/widgets/preferences-kde.xml b/toolkit/content/widge
|
|||
new file mode 100644
|
||||
--- /dev/null
|
||||
+++ b/toolkit/content/widgets/preferences-kde.xml
|
||||
@@ -0,0 +1,1406 @@
|
||||
@@ -0,0 +1,1408 @@
|
||||
+<?xml version="1.0"?>
|
||||
+
|
||||
+<!DOCTYPE bindings [
|
||||
|
@ -849,7 +849,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="fireChangedEvent">
|
||||
+ <parameter name="aPreference"/>
|
||||
+ <body>
|
||||
|
@ -866,7 +866,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <field name="service">
|
||||
+ Components.classes["@mozilla.org/preferences-service;1"]
|
||||
+ .getService(Components.interfaces.nsIPrefService);
|
||||
|
@ -916,11 +916,11 @@ new file mode 100644
|
|||
+ .addObserver(this.name, this.preferences, false);
|
||||
+ // In non-instant apply mode, we must try and use the last saved state
|
||||
+ // from any previous opens of a child dialog instead of the value from
|
||||
+ // preferences, to pick up any edits a user may have made.
|
||||
+ // preferences, to pick up any edits a user may have made.
|
||||
+
|
||||
+ var secMan = Components.classes["@mozilla.org/scriptsecuritymanager;1"]
|
||||
+ .getService(Components.interfaces.nsIScriptSecurityManager);
|
||||
+ if (this.preferences.type == "child" &&
|
||||
+ if (this.preferences.type == "child" &&
|
||||
+ !this.instantApply && window.opener &&
|
||||
+ secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
|
||||
+ var pdoc = window.opener.document;
|
||||
|
@ -961,13 +961,13 @@ new file mode 100644
|
|||
+ <setter>
|
||||
+ if (val == this.name)
|
||||
+ return val;
|
||||
+
|
||||
+
|
||||
+ this.preferences.rootBranchInternal
|
||||
+ .removeObserver(this.name, this.preferences);
|
||||
+ this.setAttribute('name', val);
|
||||
+ this.preferences.rootBranchInternal
|
||||
+ .addObserver(val, this.preferences, false);
|
||||
+
|
||||
+
|
||||
+ return val;
|
||||
+ </setter>
|
||||
+ </property>
|
||||
|
@ -994,20 +994,20 @@ new file mode 100644
|
|||
+ </body>
|
||||
+ </method>
|
||||
+ <property name="value" onget="return this._value" onset="return this._setValue(val);"/>
|
||||
+
|
||||
+
|
||||
+ <property name="locked">
|
||||
+ <getter>
|
||||
+ return this.preferences.rootBranch.prefIsLocked(this.name);
|
||||
+ </getter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <property name="disabled">
|
||||
+ <getter>
|
||||
+ return this.getAttribute("disabled") == "true";
|
||||
+ </getter>
|
||||
+ <setter>
|
||||
+ <![CDATA[
|
||||
+ if (val)
|
||||
+ if (val)
|
||||
+ this.setAttribute("disabled", "true");
|
||||
+ else
|
||||
+ this.removeAttribute("disabled");
|
||||
|
@ -1018,24 +1018,24 @@ new file mode 100644
|
|||
+ var elements = document.getElementsByAttribute("preference", this.id);
|
||||
+ for (var i = 0; i < elements.length; ++i) {
|
||||
+ elements[i].disabled = val;
|
||||
+
|
||||
+
|
||||
+ var labels = document.getElementsByAttribute("control", elements[i].id);
|
||||
+ for (var j = 0; j < labels.length; ++j)
|
||||
+ labels[j].disabled = val;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ return val;
|
||||
+ ]]>
|
||||
+ </setter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <property name="tabIndex">
|
||||
+ <getter>
|
||||
+ return parseInt(this.getAttribute("tabindex"));
|
||||
+ </getter>
|
||||
+ <setter>
|
||||
+ <![CDATA[
|
||||
+ if (val)
|
||||
+ if (val)
|
||||
+ this.setAttribute("tabindex", val);
|
||||
+ else
|
||||
+ this.removeAttribute("tabindex");
|
||||
|
@ -1046,12 +1046,12 @@ new file mode 100644
|
|||
+ var elements = document.getElementsByAttribute("preference", this.id);
|
||||
+ for (var i = 0; i < elements.length; ++i) {
|
||||
+ elements[i].tabIndex = val;
|
||||
+
|
||||
+
|
||||
+ var labels = document.getElementsByAttribute("control", elements[i].id);
|
||||
+ for (var j = 0; j < labels.length; ++j)
|
||||
+ labels[j].tabIndex = val;
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ return val;
|
||||
+ ]]>
|
||||
+ </setter>
|
||||
|
@ -1065,7 +1065,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </getter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <method name="reset">
|
||||
+ <body>
|
||||
+ // defer reset until preference update
|
||||
|
@ -1073,7 +1073,7 @@ new file mode 100644
|
|||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+ <field name="_useDefault">false</field>
|
||||
+ <field name="_useDefault">false</field>
|
||||
+ <property name="defaultValue">
|
||||
+ <getter>
|
||||
+ <![CDATA[
|
||||
|
@ -1084,27 +1084,27 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </getter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <property name="_branch">
|
||||
+ <getter>
|
||||
+ return this._useDefault ? this.preferences.defaultBranch : this.preferences.rootBranch;
|
||||
+ </getter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <field name="batching">false</field>
|
||||
+
|
||||
+
|
||||
+ <method name="_reportUnknownType">
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ var consoleService = Components.classes["@mozilla.org/consoleservice;1"]
|
||||
+ .getService(Components.interfaces.nsIConsoleService);
|
||||
+ var msg = "<preference> with id='" + this.id + "' and name='" +
|
||||
+ var msg = "<preference> with id='" + this.id + "' and name='" +
|
||||
+ this.name + "' has unknown type '" + this.type + "'.";
|
||||
+ consoleService.logStringMessage(msg);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <property name="valueFromPreferences">
|
||||
+ <getter>
|
||||
+ <![CDATA[
|
||||
|
@ -1189,7 +1189,7 @@ new file mode 100644
|
|||
+ if (!lf.exists())
|
||||
+ lf.initWithPath(val);
|
||||
+ }
|
||||
+ else
|
||||
+ else
|
||||
+ lf = val.QueryInterface(Components.interfaces.nsILocalFile);
|
||||
+ this.preferences.rootBranch
|
||||
+ .setComplexValue(this.name, Components.interfaces.nsILocalFile, lf);
|
||||
|
@ -1203,7 +1203,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </setter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <method name="setElementValue">
|
||||
+ <parameter name="aElement"/>
|
||||
+ <body>
|
||||
|
@ -1220,7 +1220,7 @@ new file mode 100644
|
|||
+ try {
|
||||
+ var event = document.createEvent("Events");
|
||||
+ event.initEvent("syncfrompreference", true, true);
|
||||
+ var f = new Function ("event",
|
||||
+ var f = new Function ("event",
|
||||
+ aElement.getAttribute("onsyncfrompreference"));
|
||||
+ rv = f.call(aElement, event);
|
||||
+ }
|
||||
|
@ -1228,20 +1228,22 @@ new file mode 100644
|
|||
+ Components.utils.reportError(e);
|
||||
+ }
|
||||
+ }
|
||||
+ var val = rv !== undefined ? rv : (this.instantApply ? this.valueFromPreferences : this.value);
|
||||
+ var val = rv;
|
||||
+ if (val === undefined)
|
||||
+ val = this.instantApply ? this.valueFromPreferences : this.value;
|
||||
+ // if the preference is marked for reset, show default value in UI
|
||||
+ if (val === undefined)
|
||||
+ val = this.defaultValue;
|
||||
+
|
||||
+ /**
|
||||
+ * Initialize a UI element property with a value. Handles the case
|
||||
+ * Initialize a UI element property with a value. Handles the case
|
||||
+ * where an element has not yet had a XBL binding attached for it and
|
||||
+ * the property setter does not yet exist by setting the same attribute
|
||||
+ * on the XUL element using DOM apis and assuming the element's
|
||||
+ * constructor or property getters appropriately handle this state.
|
||||
+ * on the XUL element using DOM apis and assuming the element's
|
||||
+ * constructor or property getters appropriately handle this state.
|
||||
+ */
|
||||
+ function setValue(element, attribute, value) {
|
||||
+ if (attribute in element)
|
||||
+ if (attribute in element)
|
||||
+ element[attribute] = value;
|
||||
+ else
|
||||
+ element.setAttribute(attribute, value);
|
||||
|
@ -1273,19 +1275,19 @@ new file mode 100644
|
|||
+ try {
|
||||
+ var event = document.createEvent("Events");
|
||||
+ event.initEvent("synctopreference", true, true);
|
||||
+ var f = new Function ("event",
|
||||
+ var f = new Function ("event",
|
||||
+ aElement.getAttribute("onsynctopreference"));
|
||||
+ var rv = f.call(aElement, event);
|
||||
+ if (rv !== undefined)
|
||||
+ if (rv !== undefined)
|
||||
+ return rv;
|
||||
+ }
|
||||
+ catch (e) {
|
||||
+ Components.utils.reportError(e);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
+ /**
|
||||
+ * Read the value of an attribute from an element, assuming the
|
||||
+ * Read the value of an attribute from an element, assuming the
|
||||
+ * attribute is a property on the element's node API. If the property
|
||||
+ * is not present in the API, then assume its value is contained in
|
||||
+ * an attribute, as is the case before a binding has been attached.
|
||||
|
@ -1313,7 +1315,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="isElementEditable">
|
||||
+ <parameter name="aElement"/>
|
||||
+ <body>
|
||||
|
@ -1329,26 +1331,26 @@ new file mode 100644
|
|||
+ return true;
|
||||
+ }
|
||||
+ return aElement.getAttribute("preference-editable") == "true";
|
||||
+ ]]>
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="updateElements">
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ if (!this.id)
|
||||
+ return;
|
||||
+
|
||||
+ // This "change" event handler tracks changes made to preferences by
|
||||
+ // sources other than the user in this window.
|
||||
+ // This "change" event handler tracks changes made to preferences by
|
||||
+ // sources other than the user in this window.
|
||||
+ var elements = document.getElementsByAttribute("preference", this.id);
|
||||
+ for (var i = 0; i < elements.length; ++i)
|
||||
+ for (var i = 0; i < elements.length; ++i)
|
||||
+ this.setElementValue(elements[i]);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+ </implementation>
|
||||
+
|
||||
+
|
||||
+ <handlers>
|
||||
+ <handler event="change">
|
||||
+ this.updateElements();
|
||||
|
@ -1423,7 +1425,7 @@ new file mode 100644
|
|||
+ // no buttons on Mac except Help
|
||||
+ cancelButton.hidden = true;
|
||||
+ // Move Help button to the end
|
||||
+ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
|
||||
+ document.getAnonymousElementByAttribute(this, "anonid", "spacer").hidden = true;
|
||||
+ // Also, don't fire onDialogAccept on enter
|
||||
+ acceptButton.disabled = true;
|
||||
+ } else {
|
||||
|
@ -1500,26 +1502,26 @@ new file mode 100644
|
|||
+ onget="return document.getAnonymousElementByAttribute(this, 'class', 'paneDeckContainer');"/>
|
||||
+ <property name="_selector"
|
||||
+ onget="return document.getAnonymousElementByAttribute(this, 'anonid', 'selector');"/>
|
||||
+ <property name="lastSelected"
|
||||
+ <property name="lastSelected"
|
||||
+ onget="return this.getAttribute('lastSelected');">
|
||||
+ <setter>
|
||||
+ this.setAttribute("lastSelected", val);
|
||||
+ this.setAttribute("lastSelected", val);
|
||||
+ document.persist(this.id, "lastSelected");
|
||||
+ return val;
|
||||
+ </setter>
|
||||
+ </setter>
|
||||
+ </property>
|
||||
+ <property name="currentPane"
|
||||
+ onset="return this._currentPane = val;">
|
||||
+ <getter>
|
||||
+ if (!this._currentPane)
|
||||
+ this._currentPane = this.preferencePanes[0];
|
||||
+
|
||||
+
|
||||
+ return this._currentPane;
|
||||
+ </getter>
|
||||
+ </getter>
|
||||
+ </property>
|
||||
+ <field name="_currentPane">null</field>
|
||||
+
|
||||
+
|
||||
+
|
||||
+
|
||||
+ <method name="_makePaneButton">
|
||||
+ <parameter name="aPaneElement"/>
|
||||
+ <body>
|
||||
|
@ -1551,16 +1553,16 @@ new file mode 100644
|
|||
+ {
|
||||
+ this._pane = aPane;
|
||||
+ }
|
||||
+ OverlayLoadObserver.prototype = {
|
||||
+ OverlayLoadObserver.prototype = {
|
||||
+ _outer: this,
|
||||
+ observe: function (aSubject, aTopic, aData)
|
||||
+ observe: function (aSubject, aTopic, aData)
|
||||
+ {
|
||||
+ this._pane.loaded = true;
|
||||
+ this._outer._fireEvent("paneload", this._pane);
|
||||
+ this._outer._selectPane(this._pane);
|
||||
+ }
|
||||
+ };
|
||||
+
|
||||
+
|
||||
+ var obs = new OverlayLoadObserver(aPaneElement);
|
||||
+ document.loadOverlay(aPaneElement.src, obs);
|
||||
+ }
|
||||
|
@ -1569,13 +1571,13 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="_fireEvent">
|
||||
+ <parameter name="aEventName"/>
|
||||
+ <parameter name="aTarget"/>
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ // Panel loaded, synthesize a load event.
|
||||
+ // Panel loaded, synthesize a load event.
|
||||
+ try {
|
||||
+ var event = document.createEvent("Events");
|
||||
+ event.initEvent(aEventName, true, true);
|
||||
|
@ -1586,16 +1588,16 @@ new file mode 100644
|
|||
+ if (rv == false)
|
||||
+ cancel = true;
|
||||
+ }
|
||||
+ return !cancel;
|
||||
+ return !cancel;
|
||||
+ }
|
||||
+ catch (e) {
|
||||
+ catch (e) {
|
||||
+ Components.utils.reportError(e);
|
||||
+ }
|
||||
+ return false;
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <field name="_initialized">false</field>
|
||||
+ <method name="_selectPane">
|
||||
+ <parameter name="aPaneElement"/>
|
||||
|
@ -1614,13 +1616,13 @@ new file mode 100644
|
|||
+ else
|
||||
+ helpButton.hidden = true;
|
||||
+
|
||||
+ // Find this pane's index in the deck and set the deck's
|
||||
+ // Find this pane's index in the deck and set the deck's
|
||||
+ // selectedIndex to that value to switch to it.
|
||||
+ var prefpanes = this.preferencePanes;
|
||||
+ for (var i = 0; i < prefpanes.length; ++i) {
|
||||
+ if (prefpanes[i] == aPaneElement) {
|
||||
+ this._paneDeck.selectedIndex = i;
|
||||
+
|
||||
+
|
||||
+ if (this.type != "child") {
|
||||
+ if (aPaneElement.hasAttribute("flex") && this._shouldAnimate &&
|
||||
+ prefpanes.length > 1)
|
||||
|
@ -1673,7 +1675,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <property name="_shouldAnimate">
|
||||
+ <getter>
|
||||
+ <![CDATA[
|
||||
|
@ -1690,7 +1692,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </getter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <method name="animate">
|
||||
+ <parameter name="aOldPane"/>
|
||||
+ <parameter name="aNewPane"/>
|
||||
|
@ -1698,7 +1700,7 @@ new file mode 100644
|
|||
+ <![CDATA[
|
||||
+ // if we are already resizing, use currentHeight
|
||||
+ var oldHeight = this._currentHeight ? this._currentHeight : aOldPane.contentHeight;
|
||||
+
|
||||
+
|
||||
+ this._multiplier = aNewPane.contentHeight > oldHeight ? 1 : -1;
|
||||
+ var sizeDelta = Math.abs(oldHeight - aNewPane.contentHeight);
|
||||
+ this._animateRemainder = sizeDelta % this._animateIncrement;
|
||||
|
@ -1707,7 +1709,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <property name="_sizeIncrement">
|
||||
+ <getter>
|
||||
+ <![CDATA[
|
||||
|
@ -1717,7 +1719,7 @@ new file mode 100644
|
|||
+ if ((this._multiplier > 0 && this._currentHeight >= lastSelectedPane.contentHeight) ||
|
||||
+ (this._multiplier < 0 && this._currentHeight <= lastSelectedPane.contentHeight))
|
||||
+ return 0;
|
||||
+
|
||||
+
|
||||
+ if ((this._multiplier > 0 && newHeight > lastSelectedPane.contentHeight) ||
|
||||
+ (this._multiplier < 0 && newHeight < lastSelectedPane.contentHeight))
|
||||
+ increment = this._animateRemainder * this._multiplier;
|
||||
|
@ -1725,14 +1727,14 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </getter>
|
||||
+ </property>
|
||||
+
|
||||
+
|
||||
+ <method name="notify">
|
||||
+ <parameter name="aTimer"/>
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ if (!document)
|
||||
+ aTimer.cancel();
|
||||
+
|
||||
+
|
||||
+ if (aTimer == this._animateTimer) {
|
||||
+ var increment = this._sizeIncrement;
|
||||
+ if (increment != 0) {
|
||||
|
@ -1756,39 +1758,39 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="_setUpAnimationTimer">
|
||||
+ <parameter name="aStartHeight"/>
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ if (!this._animateTimer)
|
||||
+ if (!this._animateTimer)
|
||||
+ this._animateTimer = Components.classes["@mozilla.org/timer;1"]
|
||||
+ .createInstance(Components.interfaces.nsITimer);
|
||||
+ else
|
||||
+ this._animateTimer.cancel();
|
||||
+ this._currentHeight = aStartHeight;
|
||||
+
|
||||
+ this._animateTimer.initWithCallback(this, this._animateDelay,
|
||||
+
|
||||
+ this._animateTimer.initWithCallback(this, this._animateDelay,
|
||||
+ Components.interfaces.nsITimer.TYPE_REPEATING_SLACK);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="_setUpFadeTimer">
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ if (!this._fadeTimer)
|
||||
+ if (!this._fadeTimer)
|
||||
+ this._fadeTimer = Components.classes["@mozilla.org/timer;1"]
|
||||
+ .createInstance(Components.interfaces.nsITimer);
|
||||
+ else
|
||||
+ this._fadeTimer.cancel();
|
||||
+
|
||||
+ this._fadeTimer.initWithCallback(this, this._fadeDelay,
|
||||
+
|
||||
+ this._fadeTimer.initWithCallback(this, this._fadeDelay,
|
||||
+ Components.interfaces.nsITimer.TYPE_REPEATING_SLACK);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <field name="_animateTimer">null</field>
|
||||
+ <field name="_fadeTimer">null</field>
|
||||
+ <field name="_animateDelay">15</field>
|
||||
|
@ -1804,13 +1806,13 @@ new file mode 100644
|
|||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ this.appendChild(aPaneElement);
|
||||
+
|
||||
+
|
||||
+ // Set up pane button
|
||||
+ this._makePaneButton(aPaneElement);
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="openSubDialog">
|
||||
+ <parameter name="aURL"/>
|
||||
+ <parameter name="aFeatures"/>
|
||||
|
@ -1819,7 +1821,7 @@ new file mode 100644
|
|||
+ return openDialog(aURL, "", "modal,centerscreen,resizable=no" + (aFeatures != "" ? ("," + aFeatures) : ""), aParams);
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="openWindow">
|
||||
+ <parameter name="aWindowType"/>
|
||||
+ <parameter name="aURL"/>
|
||||
|
@ -1856,29 +1858,29 @@ new file mode 100644
|
|||
+ .getService(Components.interfaces.nsIScriptSecurityManager);
|
||||
+ if (this.type == "child" && window.opener &&
|
||||
+ secMan.isSystemPrincipal(window.opener.document.nodePrincipal)) {
|
||||
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
+ let psvc = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
+ .getService(Components.interfaces.nsIPrefBranch);
|
||||
+ var pdocEl = window.opener.document.documentElement;
|
||||
+ if (pdocEl.instantApply) {
|
||||
+ var panes = this.preferencePanes;
|
||||
+ for (var i = 0; i < panes.length; ++i)
|
||||
+ let panes = this.preferencePanes;
|
||||
+ for (let i = 0; i < panes.length; ++i)
|
||||
+ panes[i].writePreferences(true);
|
||||
+ }
|
||||
+ else {
|
||||
+ // Clone all the preferences elements from the child document and
|
||||
+ // insert them into the pane collection of the parent.
|
||||
+ // insert them into the pane collection of the parent.
|
||||
+ var pdoc = window.opener.document;
|
||||
+ if (pdoc.documentElement.localName == "prefwindow") {
|
||||
+ var currentPane = pdoc.documentElement.currentPane;
|
||||
+ var id = window.location.href + "#childprefs";
|
||||
+ var childPrefs = pdoc.getElementById(id);
|
||||
+ if (!childPrefs) {
|
||||
+ var childPrefs = pdoc.createElement("preferences");
|
||||
+ childPrefs = pdoc.createElement("preferences");
|
||||
+ currentPane.appendChild(childPrefs);
|
||||
+ childPrefs.id = id;
|
||||
+ }
|
||||
+ var panes = this.preferencePanes;
|
||||
+ for (var i = 0; i < panes.length; ++i) {
|
||||
+ let panes = this.preferencePanes;
|
||||
+ for (let i = 0; i < panes.length; ++i) {
|
||||
+ var preferences = panes[i].preferences;
|
||||
+ for (var j = 0; j < preferences.length; ++j) {
|
||||
+ // Try to find a preference element for the same preference.
|
||||
|
@ -1909,11 +1911,11 @@ new file mode 100644
|
|||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ var panes = this.preferencePanes;
|
||||
+ let panes = this.preferencePanes;
|
||||
+ for (var i = 0; i < panes.length; ++i)
|
||||
+ panes[i].writePreferences(false);
|
||||
+
|
||||
+ var psvc = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
+ let psvc = Components.classes["@mozilla.org/preferences-service;1"]
|
||||
+ .getService(Components.interfaces.nsIPrefService);
|
||||
+ psvc.savePrefFile(null);
|
||||
+ }
|
||||
|
@ -1955,7 +1957,7 @@ new file mode 100644
|
|||
+ </handler>
|
||||
+ </handlers>
|
||||
+ </binding>
|
||||
+
|
||||
+
|
||||
+ <binding id="prefpane">
|
||||
+ <resources>
|
||||
+ <stylesheet src="chrome://global/skin/preferences.css"/>
|
||||
|
@ -1990,20 +1992,20 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+ <property name="src"
|
||||
+
|
||||
+ <property name="src"
|
||||
+ onget="return this.getAttribute('src');"
|
||||
+ onset="this.setAttribute('src', val); return val;"/>
|
||||
+ <property name="selected"
|
||||
+ <property name="selected"
|
||||
+ onget="return this.getAttribute('selected') == 'true';"
|
||||
+ onset="this.setAttribute('selected', val); return val;"/>
|
||||
+ <property name="image"
|
||||
+ <property name="image"
|
||||
+ onget="return this.getAttribute('image');"
|
||||
+ onset="this.setAttribute('image', val); return val;"/>
|
||||
+ <property name="label"
|
||||
+ <property name="label"
|
||||
+ onget="return this.getAttribute('label');"
|
||||
+ onset="this.setAttribute('label', val); return val;"/>
|
||||
+
|
||||
+
|
||||
+ <property name="preferenceElements"
|
||||
+ onget="return this.getElementsByAttribute('preference', '*');"/>
|
||||
+ <property name="preferences"
|
||||
|
@ -2027,30 +2029,30 @@ new file mode 100644
|
|||
+ </property>
|
||||
+
|
||||
+ <field name="_loaded">false</field>
|
||||
+ <property name="loaded"
|
||||
+ <property name="loaded"
|
||||
+ onget="return !this.src ? true : this._loaded;"
|
||||
+ onset="this._loaded = val; return val;"/>
|
||||
+
|
||||
+
|
||||
+ <method name="preferenceForElement">
|
||||
+ <parameter name="aElement"/>
|
||||
+ <body>
|
||||
+ return document.getElementById(aElement.getAttribute("preference"));
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <method name="getPreferenceElement">
|
||||
+ <parameter name="aStartElement"/>
|
||||
+ <body>
|
||||
+ <![CDATA[
|
||||
+ var temp = aStartElement;
|
||||
+ while (temp && temp.nodeType == Node.ELEMENT_NODE &&
|
||||
+ while (temp && temp.nodeType == Node.ELEMENT_NODE &&
|
||||
+ !temp.hasAttribute("preference"))
|
||||
+ temp = temp.parentNode;
|
||||
+ return temp.nodeType == Node.ELEMENT_NODE ? temp : aStartElement;
|
||||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <field name="DeferredTask" readonly="true">
|
||||
+ let targetObj = {};
|
||||
+ Components.utils.import("resource://gre/modules/DeferredTask.jsm", targetObj);
|
||||
|
@ -2106,7 +2108,7 @@ new file mode 100644
|
|||
+ ]]>
|
||||
+ </body>
|
||||
+ </method>
|
||||
+
|
||||
+
|
||||
+ <property name="contentHeight">
|
||||
+ <getter>
|
||||
+ var targetHeight = parseInt(window.getComputedStyle(this._content, "").height);
|
||||
|
@ -2121,25 +2123,25 @@ new file mode 100644
|
|||
+ </implementation>
|
||||
+ <handlers>
|
||||
+ <handler event="command">
|
||||
+ // This "command" event handler tracks changes made to preferences by
|
||||
+ // This "command" event handler tracks changes made to preferences by
|
||||
+ // the user in this window.
|
||||
+ if (event.sourceEvent)
|
||||
+ event = event.sourceEvent;
|
||||
+ this.userChangedValue(event.target);
|
||||
+ </handler>
|
||||
+ <handler event="select">
|
||||
+ // This "select" event handler tracks changes made to colorpicker
|
||||
+ // This "select" event handler tracks changes made to colorpicker
|
||||
+ // preferences by the user in this window.
|
||||
+ if (event.target.localName == "colorpicker")
|
||||
+ if (event.target.localName == "colorpicker")
|
||||
+ this.userChangedValue(event.target);
|
||||
+ </handler>
|
||||
+ <handler event="change">
|
||||
+ // This "change" event handler tracks changes made to preferences by
|
||||
+ // the user in this window.
|
||||
+ // This "change" event handler tracks changes made to preferences by
|
||||
+ // the user in this window.
|
||||
+ this.userChangedValue(event.target);
|
||||
+ </handler>
|
||||
+ <handler event="input">
|
||||
+ // This "input" event handler tracks changes made to preferences by
|
||||
+ // This "input" event handler tracks changes made to preferences by
|
||||
+ // the user in this window.
|
||||
+ this.userChangedValue(event.target);
|
||||
+ </handler>
|
||||
|
@ -2156,11 +2158,11 @@ new file mode 100644
|
|||
+ dump("*** No preference found for " + elements[i].getAttribute("preference") + "\n");
|
||||
+ }
|
||||
+ }
|
||||
+ ]]>
|
||||
+ ]]>
|
||||
+ </handler>
|
||||
+ </handlers>
|
||||
+ </binding>
|
||||
+
|
||||
+
|
||||
+ <binding id="panebutton" role="xul:listitem"
|
||||
+ extends="chrome://global/content/bindings/radio.xml#radio">
|
||||
+ <resources>
|
Loading…
Add table
Reference in a new issue