mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 23:31:56 +00:00
Bug 1319762 - Remove download.xul and related unused files. r=florian
Remove files and resources no longer shipped or referenced and update the appropriate packaging files. MozReview-Commit-ID: Apaa2JnOTMt --HG-- extra : rebase_source : e4f13f309fff39a5254d5cd7b53e98b51c6d21f8
This commit is contained in:
parent
d78d68e62a
commit
7f70113bbd
@ -1,32 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
<?xul-overlay href="chrome://browser/content/macBrowserOverlay.xul"?>
|
||||
|
||||
<overlay id="downloadManagerOverlay"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul">
|
||||
|
||||
<window id="downloadManager">
|
||||
|
||||
#include browserMountPoints.inc
|
||||
|
||||
<script type="application/javascript"><![CDATA[
|
||||
window.addEventListener("load", function(event) {
|
||||
// Bug 405696: Map Edit -> Find command to the download manager's command
|
||||
var findMenuItem = document.getElementById("menu_find");
|
||||
findMenuItem.setAttribute("command", "cmd_findDownload");
|
||||
findMenuItem.setAttribute("key", "key_findDownload");
|
||||
|
||||
// Bug 429614: Map Edit -> Select All command to download manager's command
|
||||
let selectAllMenuItem = document.getElementById("menu_selectAll");
|
||||
selectAllMenuItem.setAttribute("command", "cmd_selectAllDownloads");
|
||||
selectAllMenuItem.setAttribute("key", "key_selectAllDownloads");
|
||||
}, false);
|
||||
]]></script>
|
||||
|
||||
</window>
|
||||
|
||||
</overlay>
|
@ -4,7 +4,6 @@
|
||||
browser.jar:
|
||||
% content browser %content/browser/ contentaccessible=yes
|
||||
#ifdef XP_MACOSX
|
||||
% overlay chrome://mozapps/content/downloads/downloads.xul chrome://browser/content/downloadManagerOverlay.xul
|
||||
% overlay chrome://mozapps/content/update/updates.xul chrome://browser/content/softwareUpdateOverlay.xul
|
||||
#endif
|
||||
#ifdef XP_WIN
|
||||
@ -174,7 +173,6 @@ browser.jar:
|
||||
* content/browser/hiddenWindow.xul (content/hiddenWindow.xul)
|
||||
#ifdef XP_MACOSX
|
||||
* content/browser/macBrowserOverlay.xul (content/macBrowserOverlay.xul)
|
||||
* content/browser/downloadManagerOverlay.xul (content/downloadManagerOverlay.xul)
|
||||
* content/browser/softwareUpdateOverlay.xul (content/softwareUpdateOverlay.xul)
|
||||
#endif
|
||||
* content/browser/viewSourceOverlay.xul (content/viewSourceOverlay.xul)
|
||||
|
@ -49,14 +49,6 @@ if CONFIG['OS_ARCH'] == 'WINNT':
|
||||
'nsDownloadScanner.cpp',
|
||||
]
|
||||
|
||||
# XXX - Until Suite builds off XULRunner we can't guarantee our implementation
|
||||
# of nsIDownloadManagerUI overrides toolkit's.
|
||||
if not CONFIG['MOZ_SUITE']:
|
||||
EXTRA_COMPONENTS += [
|
||||
'nsDownloadManagerUI.js',
|
||||
'nsDownloadManagerUI.manifest',
|
||||
]
|
||||
|
||||
FINAL_LIBRARY = 'xul'
|
||||
|
||||
LOCAL_INCLUDES += [
|
||||
|
@ -1,107 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
Components.utils.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
|
||||
// Constants
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cr = Components.results;
|
||||
const DOWNLOAD_MANAGER_URL = "chrome://mozapps/content/downloads/downloads.xul";
|
||||
const PREF_FLASH_COUNT = "browser.download.manager.flashCount";
|
||||
|
||||
// nsDownloadManagerUI class
|
||||
|
||||
function nsDownloadManagerUI() {}
|
||||
|
||||
nsDownloadManagerUI.prototype = {
|
||||
classID: Components.ID("7dfdf0d1-aff6-4a34-bad1-d0fe74601642"),
|
||||
|
||||
// nsIDownloadManagerUI
|
||||
|
||||
show: function show(aWindowContext, aDownload, aReason, aUsePrivateUI)
|
||||
{
|
||||
if (!aReason)
|
||||
aReason = Ci.nsIDownloadManagerUI.REASON_USER_INTERACTED;
|
||||
|
||||
// First we see if it is already visible
|
||||
let window = this.recentWindow;
|
||||
if (window) {
|
||||
window.focus();
|
||||
|
||||
// If we are being asked to show again, with a user interaction reason,
|
||||
// set the appropriate variable.
|
||||
if (aReason == Ci.nsIDownloadManagerUI.REASON_USER_INTERACTED)
|
||||
window.gUserInteracted = true;
|
||||
return;
|
||||
}
|
||||
|
||||
let parent = null;
|
||||
// We try to get a window to use as the parent here. If we don't have one,
|
||||
// the download manager will close immediately after opening if the pref
|
||||
// browser.download.manager.closeWhenDone is set to true.
|
||||
try {
|
||||
if (aWindowContext)
|
||||
parent = aWindowContext.getInterface(Ci.nsIDOMWindow);
|
||||
} catch (e) { /* it's OK to not have a parent window */ }
|
||||
|
||||
// We pass the download manager and the nsIDownload we want selected (if any)
|
||||
var params = Cc["@mozilla.org/array;1"].createInstance(Ci.nsIMutableArray);
|
||||
params.appendElement(aDownload, false);
|
||||
|
||||
// Pass in the reason as well
|
||||
let reason = Cc["@mozilla.org/supports-PRInt16;1"].
|
||||
createInstance(Ci.nsISupportsPRInt16);
|
||||
reason.data = aReason;
|
||||
params.appendElement(reason, false);
|
||||
|
||||
var ww = Cc["@mozilla.org/embedcomp/window-watcher;1"].
|
||||
getService(Ci.nsIWindowWatcher);
|
||||
ww.openWindow(parent,
|
||||
DOWNLOAD_MANAGER_URL,
|
||||
"Download:Manager",
|
||||
"chrome,dialog=no,resizable",
|
||||
params);
|
||||
},
|
||||
|
||||
get visible() {
|
||||
return (null != this.recentWindow);
|
||||
},
|
||||
|
||||
getAttention: function getAttention()
|
||||
{
|
||||
if (!this.visible)
|
||||
throw Cr.NS_ERROR_UNEXPECTED;
|
||||
|
||||
var prefs = Cc["@mozilla.org/preferences-service;1"].
|
||||
getService(Ci.nsIPrefBranch);
|
||||
// This preference may not be set, so defaulting to two.
|
||||
let flashCount = 2;
|
||||
try {
|
||||
flashCount = prefs.getIntPref(PREF_FLASH_COUNT);
|
||||
} catch (e) { }
|
||||
|
||||
var win = this.recentWindow.QueryInterface(Ci.nsIDOMChromeWindow);
|
||||
win.getAttentionWithCycleCount(flashCount);
|
||||
},
|
||||
|
||||
// nsDownloadManagerUI
|
||||
|
||||
get recentWindow() {
|
||||
var wm = Cc["@mozilla.org/appshell/window-mediator;1"].
|
||||
getService(Ci.nsIWindowMediator);
|
||||
return wm.getMostRecentWindow("Download:Manager");
|
||||
},
|
||||
|
||||
// nsISupports
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIDownloadManagerUI])
|
||||
};
|
||||
|
||||
// Module
|
||||
|
||||
var components = [nsDownloadManagerUI];
|
||||
this.NSGetFactory = XPCOMUtils.generateNSGetFactory(components);
|
||||
|
@ -1,2 +0,0 @@
|
||||
component {7dfdf0d1-aff6-4a34-bad1-d0fe74601642} nsDownloadManagerUI.js
|
||||
contract @mozilla.org/download-manager-ui;1 {7dfdf0d1-aff6-4a34-bad1-d0fe74601642}
|
@ -1,52 +0,0 @@
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
<!-- LOCALIZATION NOTE (window.width2, window.height): These values should be
|
||||
close to the golden ratio (1.618:1) while making sure it's wide enough for long
|
||||
file names and tall enough to hint that there are more downloads in the list -->
|
||||
<!ENTITY window.width2 "485">
|
||||
<!ENTITY window.height "300">
|
||||
|
||||
<!ENTITY starting.label "Starting…">
|
||||
<!ENTITY scanning.label "Scanning for viruses…">
|
||||
|
||||
<!ENTITY downloads.title "Downloads">
|
||||
|
||||
<!ENTITY cmd.pause.label "Pause">
|
||||
<!ENTITY cmd.pause.accesskey "P">
|
||||
<!ENTITY cmd.resume.label "Resume">
|
||||
<!ENTITY cmd.resume.accesskey "R">
|
||||
<!ENTITY cmd.cancel.label "Cancel">
|
||||
<!ENTITY cmd.cancel.accesskey "C">
|
||||
<!ENTITY cmd.show.label "Open Containing Folder">
|
||||
<!ENTITY cmd.show.accesskey "F">
|
||||
<!ENTITY cmd.showMac.label "Show in Finder">
|
||||
<!ENTITY cmd.showMac.accesskey "F">
|
||||
<!ENTITY cmd.open.label "Open">
|
||||
<!ENTITY cmd.open.accesskey "O">
|
||||
<!ENTITY cmd.openWith.label "Open With…">
|
||||
<!ENTITY cmd.openWith.accesskey "h">
|
||||
<!ENTITY cmd.retry.label "Retry">
|
||||
<!ENTITY cmd.retry.accesskey "R">
|
||||
<!ENTITY cmd.goToDownloadPage.label "Go to Download Page">
|
||||
<!ENTITY cmd.goToDownloadPage.accesskey "G">
|
||||
<!ENTITY cmd.copyDownloadLink.label "Copy Download Link">
|
||||
<!ENTITY cmd.copyDownloadLink.accesskey "L">
|
||||
<!ENTITY cmd.removeFromList.label "Remove From List">
|
||||
<!ENTITY cmd.removeFromList.accesskey "e">
|
||||
|
||||
<!ENTITY cmd.close.commandKey "w">
|
||||
<!ENTITY cmd.close2.commandKey "j">
|
||||
<!ENTITY cmd.close2Unix.commandKey "y">
|
||||
<!ENTITY cmd.clearList.label "Clear List">
|
||||
<!ENTITY cmd.clearList.tooltip "Removes completed, canceled, and failed downloads from the list">
|
||||
<!ENTITY cmd.clearList.accesskey "C">
|
||||
<!ENTITY cmd.find.commandKey "f">
|
||||
<!ENTITY cmd.search.commandKey "k">
|
||||
|
||||
<!ENTITY closeWhenDone.label "Close when downloads complete">
|
||||
<!ENTITY closeWhenDone.tooltip "Closes the Downloads window when all files are done downloading">
|
||||
|
||||
<!ENTITY showFolder.label "Show this Folder">
|
||||
<!ENTITY searchBox.label "Search…">
|
@ -17,8 +17,6 @@ failed=Failed
|
||||
finished=Finished
|
||||
canceled=Canceled
|
||||
|
||||
cannotPause=This download cannot be paused
|
||||
|
||||
downloadErrorAlertTitle=Download Error
|
||||
downloadErrorGeneric=The download cannot be saved because an unknown error occurred.\n\nPlease try again.
|
||||
|
||||
@ -92,51 +90,22 @@ timeLeftDouble2=%1$S, %2$S remaining
|
||||
timeFewSeconds=A few seconds remaining
|
||||
timeUnknown=Unknown time remaining
|
||||
|
||||
# LOCALIZATION NOTE (doneStatus): — is the "em dash" (long dash)
|
||||
# #1 download size for FINISHED or download state; #2 host (e.g., eTLD + 1, IP)
|
||||
# #2 can also be doneScheme or doneFileScheme for special URIs like file:
|
||||
# examples: 1.1 MB — website2.com; Canceled — 222.net
|
||||
doneStatus=#1 — #2
|
||||
# LOCALIZATION NOTE (doneSize): #1 size number; #2 size unit
|
||||
doneSize=#1 #2
|
||||
doneSizeUnknown=Unknown size
|
||||
# LOCALIZATION NOTE (doneScheme): #1 URI scheme like data: jar: about:
|
||||
doneScheme2=%1$S resource
|
||||
# LOCALIZATION NOTE (doneFileScheme): Special case of doneScheme for file:
|
||||
# This is used as an eTLD replacement for local files, so make it lower case
|
||||
doneFileScheme=local file
|
||||
|
||||
stateFailed=Failed
|
||||
stateCanceled=Canceled
|
||||
# LOCALIZATION NOTE (stateBlocked): 'Parental Controls' should be capitalized
|
||||
stateBlocked=Blocked by Parental Controls
|
||||
stateDirty=Blocked: Download may contain a virus or spyware
|
||||
# LOCALIZATION NOTE (stateBlockedPolicy): 'Security Zone Policy' should be capitalized
|
||||
stateBlockedPolicy=This download has been blocked by your Security Zone Policy
|
||||
|
||||
# LOCALIZATION NOTE (yesterday): Displayed time for files finished yesterday
|
||||
yesterday=Yesterday
|
||||
# LOCALIZATION NOTE (monthDate): #1 month name; #2 date number; e.g., January 22
|
||||
monthDate2=%1$S %2$S
|
||||
|
||||
fileDoesNotExistOpenTitle=Cannot Open %S
|
||||
fileDoesNotExistShowTitle=Cannot Show %S
|
||||
fileDoesNotExistError=%S does not exist. It may have been renamed, moved, or deleted since it was downloaded.
|
||||
|
||||
chooseAppFilePickerTitle=Open With…
|
||||
|
||||
# LOCALIZATION NOTE (downloadsTitleFiles, downloadsTitlePercent): Semi-colon list of
|
||||
# plural forms. See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
|
||||
# #1 number of files; #2 overall download percent (only for downloadsTitlePercent)
|
||||
# examples: 2% of 1 file - Downloads; 22% of 11 files - Downloads
|
||||
downloadsTitleFiles=#1 file - Downloads;#1 files - Downloads
|
||||
downloadsTitlePercent=#2% of #1 file - Downloads;#2% of #1 files - Downloads
|
||||
|
||||
fileExecutableSecurityWarning=“%S” is an executable file. Executable files may contain viruses or other malicious code that could harm your computer. Use caution when opening this file. Are you sure you want to launch “%S”?
|
||||
fileExecutableSecurityWarningTitle=Open Executable File?
|
||||
fileExecutableSecurityWarningDontAsk=Don’t ask me this again
|
||||
|
||||
displayNameDesktop=Desktop
|
||||
|
||||
# Desktop folder name for downloaded files
|
||||
downloadsFolder=Downloads
|
||||
|
@ -101,7 +101,6 @@
|
||||
locale/@AB_CD@/mozapps/downloads/unknownContentType.properties (%chrome/mozapps/downloads/unknownContentType.properties)
|
||||
locale/@AB_CD@/mozapps/downloads/unknownContentType.dtd (%chrome/mozapps/downloads/unknownContentType.dtd)
|
||||
locale/@AB_CD@/mozapps/downloads/settingsChange.dtd (%chrome/mozapps/downloads/settingsChange.dtd)
|
||||
locale/@AB_CD@/mozapps/downloads/downloads.dtd (%chrome/mozapps/downloads/downloads.dtd)
|
||||
locale/@AB_CD@/mozapps/downloads/downloads.properties (%chrome/mozapps/downloads/downloads.properties)
|
||||
locale/@AB_CD@/mozapps/extensions/extensions.dtd (%chrome/mozapps/extensions/extensions.dtd)
|
||||
#ifndef MOZ_FENNEC
|
||||
|
@ -1,399 +0,0 @@
|
||||
/* -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
||||
* vim: sw=2 ts=2 sts=2 et filetype=javascript
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
this.EXPORTED_SYMBOLS = [
|
||||
"DownloadTaskbarProgress",
|
||||
];
|
||||
|
||||
// Constants
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cu = Components.utils;
|
||||
const Cr = Components.results;
|
||||
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/AppConstants.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Services",
|
||||
"resource://gre/modules/Services.jsm");
|
||||
|
||||
const kTaskbarIDWin = "@mozilla.org/windows-taskbar;1";
|
||||
const kTaskbarIDMac = "@mozilla.org/widget/macdocksupport;1";
|
||||
|
||||
// DownloadTaskbarProgress Object
|
||||
|
||||
this.DownloadTaskbarProgress =
|
||||
{
|
||||
init: function DTP_init()
|
||||
{
|
||||
if (DownloadTaskbarProgressUpdater) {
|
||||
DownloadTaskbarProgressUpdater._init();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Called when a browser window appears. This has an effect only when we
|
||||
* don't already have an active window.
|
||||
*
|
||||
* @param aWindow
|
||||
* The browser window that we'll potentially use to display the
|
||||
* progress.
|
||||
*/
|
||||
onBrowserWindowLoad: function DTP_onBrowserWindowLoad(aWindow)
|
||||
{
|
||||
this.init();
|
||||
if (!DownloadTaskbarProgressUpdater) {
|
||||
return;
|
||||
}
|
||||
if (!DownloadTaskbarProgressUpdater._activeTaskbarProgress) {
|
||||
DownloadTaskbarProgressUpdater._setActiveWindow(aWindow, false);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Called when the download window appears. The download window will take
|
||||
* over as the active window.
|
||||
*/
|
||||
onDownloadWindowLoad: function DTP_onDownloadWindowLoad(aWindow)
|
||||
{
|
||||
if (!DownloadTaskbarProgressUpdater) {
|
||||
return;
|
||||
}
|
||||
DownloadTaskbarProgressUpdater._setActiveWindow(aWindow, true);
|
||||
},
|
||||
|
||||
/**
|
||||
* Getters for internal DownloadTaskbarProgressUpdater values
|
||||
*/
|
||||
|
||||
get activeTaskbarProgress() {
|
||||
if (!DownloadTaskbarProgressUpdater) {
|
||||
return null;
|
||||
}
|
||||
return DownloadTaskbarProgressUpdater._activeTaskbarProgress;
|
||||
},
|
||||
|
||||
get activeWindowIsDownloadWindow() {
|
||||
if (!DownloadTaskbarProgressUpdater) {
|
||||
return null;
|
||||
}
|
||||
return DownloadTaskbarProgressUpdater._activeWindowIsDownloadWindow;
|
||||
},
|
||||
|
||||
get taskbarState() {
|
||||
if (!DownloadTaskbarProgressUpdater) {
|
||||
return null;
|
||||
}
|
||||
return DownloadTaskbarProgressUpdater._taskbarState;
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
// DownloadTaskbarProgressUpdater Object
|
||||
|
||||
var DownloadTaskbarProgressUpdater =
|
||||
{
|
||||
// / Whether the taskbar is initialized.
|
||||
_initialized: false,
|
||||
|
||||
// / Reference to the taskbar.
|
||||
_taskbar: null,
|
||||
|
||||
// / Reference to the download manager.
|
||||
_dm: null,
|
||||
|
||||
/**
|
||||
* Initialize and register ourselves as a download progress listener.
|
||||
*/
|
||||
_init: function DTPU_init()
|
||||
{
|
||||
if (this._initialized) {
|
||||
return; // Already initialized
|
||||
}
|
||||
this._initialized = true;
|
||||
|
||||
if (kTaskbarIDWin in Cc) {
|
||||
this._taskbar = Cc[kTaskbarIDWin].getService(Ci.nsIWinTaskbar);
|
||||
if (!this._taskbar.available) {
|
||||
// The Windows version is probably too old
|
||||
DownloadTaskbarProgressUpdater = null;
|
||||
return;
|
||||
}
|
||||
} else if (kTaskbarIDMac in Cc) {
|
||||
this._activeTaskbarProgress = Cc[kTaskbarIDMac].
|
||||
getService(Ci.nsITaskbarProgress);
|
||||
} else {
|
||||
DownloadTaskbarProgressUpdater = null;
|
||||
return;
|
||||
}
|
||||
|
||||
this._taskbarState = Ci.nsITaskbarProgress.STATE_NO_PROGRESS;
|
||||
|
||||
this._dm = Cc["@mozilla.org/download-manager;1"].
|
||||
getService(Ci.nsIDownloadManager);
|
||||
this._dm.addPrivacyAwareListener(this);
|
||||
|
||||
this._os = Cc["@mozilla.org/observer-service;1"].
|
||||
getService(Ci.nsIObserverService);
|
||||
this._os.addObserver(this, "quit-application-granted", false);
|
||||
|
||||
this._updateStatus();
|
||||
// onBrowserWindowLoad/onDownloadWindowLoad are going to set the active
|
||||
// window, so don't do it here.
|
||||
},
|
||||
|
||||
/**
|
||||
* Unregisters ourselves as a download progress listener.
|
||||
*/
|
||||
_uninit: function DTPU_uninit() {
|
||||
this._dm.removeListener(this);
|
||||
this._os.removeObserver(this, "quit-application-granted");
|
||||
this._activeTaskbarProgress = null;
|
||||
this._initialized = false;
|
||||
},
|
||||
|
||||
/**
|
||||
* This holds a reference to the taskbar progress for the window we're
|
||||
* working with. This window would preferably be download window, but can be
|
||||
* another window if it isn't open.
|
||||
*/
|
||||
_activeTaskbarProgress: null,
|
||||
|
||||
// / Whether the active window is the download window
|
||||
_activeWindowIsDownloadWindow: false,
|
||||
|
||||
/**
|
||||
* Sets the active window, and whether it's the download window. This takes
|
||||
* care of clearing out the previous active window's taskbar item, updating
|
||||
* the taskbar, and setting an onunload listener.
|
||||
*
|
||||
* @param aWindow
|
||||
* The window to set as active.
|
||||
* @param aIsDownloadWindow
|
||||
* Whether this window is a download window.
|
||||
*/
|
||||
_setActiveWindow: function DTPU_setActiveWindow(aWindow, aIsDownloadWindow)
|
||||
{
|
||||
if (AppConstants.platform == "win") {
|
||||
// Clear out the taskbar for the old active window. (If there was no active
|
||||
// window, this is a no-op.)
|
||||
this._clearTaskbar();
|
||||
|
||||
this._activeWindowIsDownloadWindow = aIsDownloadWindow;
|
||||
if (aWindow) {
|
||||
// Get the taskbar progress for this window
|
||||
let docShell = aWindow.QueryInterface(Ci.nsIInterfaceRequestor).
|
||||
getInterface(Ci.nsIWebNavigation).
|
||||
QueryInterface(Ci.nsIDocShellTreeItem).treeOwner.
|
||||
QueryInterface(Ci.nsIInterfaceRequestor).
|
||||
getInterface(Ci.nsIXULWindow).docShell;
|
||||
let taskbarProgress = this._taskbar.getTaskbarProgress(docShell);
|
||||
this._activeTaskbarProgress = taskbarProgress;
|
||||
|
||||
this._updateTaskbar();
|
||||
// _onActiveWindowUnload is idempotent, so we don't need to check whether
|
||||
// we've already set this before or not.
|
||||
aWindow.addEventListener("unload", function() {
|
||||
DownloadTaskbarProgressUpdater._onActiveWindowUnload(taskbarProgress);
|
||||
}, false);
|
||||
}
|
||||
else {
|
||||
this._activeTaskbarProgress = null;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// / Current state displayed on the active window's taskbar item
|
||||
_taskbarState: null,
|
||||
_totalSize: 0,
|
||||
_totalTransferred: 0,
|
||||
|
||||
_shouldSetState: function DTPU_shouldSetState()
|
||||
{
|
||||
if (AppConstants.platform == "win") {
|
||||
// If the active window is not the download manager window, set the state
|
||||
// only if it is normal or indeterminate.
|
||||
return this._activeWindowIsDownloadWindow ||
|
||||
(this._taskbarState == Ci.nsITaskbarProgress.STATE_NORMAL ||
|
||||
this._taskbarState == Ci.nsITaskbarProgress.STATE_INDETERMINATE);
|
||||
}
|
||||
return true;
|
||||
},
|
||||
|
||||
/**
|
||||
* Update the active window's taskbar indicator with the current state. There
|
||||
* are two cases here:
|
||||
* 1. If the active window is the download window, then we always update
|
||||
* the taskbar indicator.
|
||||
* 2. If the active window isn't the download window, then we update only if
|
||||
* the status is normal or indeterminate. i.e. one or more downloads are
|
||||
* currently progressing or in scan mode. If we aren't, then we clear the
|
||||
* indicator.
|
||||
*/
|
||||
_updateTaskbar: function DTPU_updateTaskbar()
|
||||
{
|
||||
if (!this._activeTaskbarProgress) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (this._shouldSetState()) {
|
||||
this._activeTaskbarProgress.setProgressState(this._taskbarState,
|
||||
this._totalTransferred,
|
||||
this._totalSize);
|
||||
}
|
||||
// Clear any state otherwise
|
||||
else {
|
||||
this._clearTaskbar();
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Clear taskbar state. This is needed:
|
||||
* - to transfer the indicator off a window before transferring it onto
|
||||
* another one
|
||||
* - whenever we don't want to show it for a non-download window.
|
||||
*/
|
||||
_clearTaskbar: function DTPU_clearTaskbar()
|
||||
{
|
||||
if (this._activeTaskbarProgress) {
|
||||
this._activeTaskbarProgress.setProgressState(
|
||||
Ci.nsITaskbarProgress.STATE_NO_PROGRESS
|
||||
);
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Update this._taskbarState, this._totalSize and this._totalTransferred.
|
||||
* This is called when the download manager is initialized or when the
|
||||
* progress or state of a download changes.
|
||||
* We compute the number of active and paused downloads, and the total size
|
||||
* and total amount already transferred across whichever downloads we have
|
||||
* the data for.
|
||||
* - If there are no active downloads, then we don't want to show any
|
||||
* progress.
|
||||
* - If the number of active downloads is equal to the number of paused
|
||||
* downloads, then we show a paused indicator if we know the size of at
|
||||
* least one download, and no indicator if we don't.
|
||||
* - If the number of active downloads is more than the number of paused
|
||||
* downloads, then we show a "normal" indicator if we know the size of at
|
||||
* least one download, and an indeterminate indicator if we don't.
|
||||
*/
|
||||
_updateStatus: function DTPU_updateStatus()
|
||||
{
|
||||
let numActive = this._dm.activeDownloadCount + this._dm.activePrivateDownloadCount;
|
||||
let totalSize = 0, totalTransferred = 0;
|
||||
|
||||
if (numActive == 0) {
|
||||
this._taskbarState = Ci.nsITaskbarProgress.STATE_NO_PROGRESS;
|
||||
}
|
||||
else {
|
||||
let numPaused = 0, numScanning = 0;
|
||||
|
||||
// Enumerate all active downloads
|
||||
[this._dm.activeDownloads, this._dm.activePrivateDownloads].forEach(function(downloads) {
|
||||
while (downloads.hasMoreElements()) {
|
||||
let download = downloads.getNext().QueryInterface(Ci.nsIDownload);
|
||||
// Only set values if we actually know the download size
|
||||
if (download.percentComplete != -1) {
|
||||
totalSize += download.size;
|
||||
totalTransferred += download.amountTransferred;
|
||||
}
|
||||
// We might need to display a paused state, so track this
|
||||
if (download.state == this._dm.DOWNLOAD_PAUSED) {
|
||||
numPaused++;
|
||||
} else if (download.state == this._dm.DOWNLOAD_SCANNING) {
|
||||
numScanning++;
|
||||
}
|
||||
}
|
||||
}.bind(this));
|
||||
|
||||
// If all downloads are paused, show the progress as paused, unless we
|
||||
// don't have any information about sizes, in which case we don't
|
||||
// display anything
|
||||
if (numActive == numPaused) {
|
||||
if (totalSize == 0) {
|
||||
this._taskbarState = Ci.nsITaskbarProgress.STATE_NO_PROGRESS;
|
||||
totalTransferred = 0;
|
||||
}
|
||||
else {
|
||||
this._taskbarState = Ci.nsITaskbarProgress.STATE_PAUSED;
|
||||
}
|
||||
}
|
||||
// If at least one download is not paused, and we don't have any
|
||||
// information about download sizes, display an indeterminate indicator
|
||||
else if (totalSize == 0 || numActive == numScanning) {
|
||||
this._taskbarState = Ci.nsITaskbarProgress.STATE_INDETERMINATE;
|
||||
totalSize = 0;
|
||||
totalTransferred = 0;
|
||||
}
|
||||
// Otherwise display a normal progress bar
|
||||
else {
|
||||
this._taskbarState = Ci.nsITaskbarProgress.STATE_NORMAL;
|
||||
}
|
||||
}
|
||||
|
||||
this._totalSize = totalSize;
|
||||
this._totalTransferred = totalTransferred;
|
||||
},
|
||||
|
||||
/**
|
||||
* Called when a window that at one point has been an active window is
|
||||
* closed. If this window is currently the active window, we need to look for
|
||||
* another window and make that our active window.
|
||||
*
|
||||
* This function is idempotent, so multiple calls for the same window are not
|
||||
* a problem.
|
||||
*
|
||||
* @param aTaskbarProgress
|
||||
* The taskbar progress for the window that is being unloaded.
|
||||
*/
|
||||
_onActiveWindowUnload: function DTPU_onActiveWindowUnload(aTaskbarProgress)
|
||||
{
|
||||
if (this._activeTaskbarProgress == aTaskbarProgress) {
|
||||
let windowMediator = Cc["@mozilla.org/appshell/window-mediator;1"].
|
||||
getService(Ci.nsIWindowMediator);
|
||||
let windows = windowMediator.getEnumerator(null);
|
||||
let newActiveWindow = null;
|
||||
if (windows.hasMoreElements()) {
|
||||
newActiveWindow = windows.getNext().QueryInterface(Ci.nsIDOMWindow);
|
||||
}
|
||||
|
||||
// We aren't ever going to reach this point while the download manager is
|
||||
// open, so it's safe to assume false for the second operand
|
||||
this._setActiveWindow(newActiveWindow, false);
|
||||
}
|
||||
},
|
||||
|
||||
// nsIDownloadProgressListener
|
||||
|
||||
/**
|
||||
* Update status if a download's progress has changed.
|
||||
*/
|
||||
onProgressChange: function DTPU_onProgressChange()
|
||||
{
|
||||
this._updateStatus();
|
||||
this._updateTaskbar();
|
||||
},
|
||||
|
||||
/**
|
||||
* Update status if a download's state has changed.
|
||||
*/
|
||||
onDownloadStateChange: function DTPU_onDownloadStateChange()
|
||||
{
|
||||
this._updateStatus();
|
||||
this._updateTaskbar();
|
||||
},
|
||||
|
||||
onSecurityChange: function() { },
|
||||
|
||||
onStateChange: function() { },
|
||||
|
||||
observe: function DTPU_observe(aSubject, aTopic, aData) {
|
||||
if (aTopic == "quit-application-granted") {
|
||||
this._uninit();
|
||||
}
|
||||
}
|
||||
};
|
@ -1,117 +0,0 @@
|
||||
// -*- indent-tabs-mode: nil; js-indent-level: 2 -*-
|
||||
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/**
|
||||
* DownloadProgressListener "class" is used to help update download items shown
|
||||
* in the Download Manager UI such as displaying amount transferred, transfer
|
||||
* rate, and time left for each download.
|
||||
*
|
||||
* This class implements the nsIDownloadProgressListener interface.
|
||||
*/
|
||||
function DownloadProgressListener() {}
|
||||
|
||||
DownloadProgressListener.prototype = {
|
||||
// nsISupports
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIDownloadProgressListener]),
|
||||
|
||||
// nsIDownloadProgressListener
|
||||
|
||||
onDownloadStateChange: function dlPL_onDownloadStateChange(aState, aDownload)
|
||||
{
|
||||
// Update window title in-case we don't get all progress notifications
|
||||
onUpdateProgress();
|
||||
|
||||
let dl;
|
||||
let state = aDownload.state;
|
||||
switch (state) {
|
||||
case nsIDM.DOWNLOAD_QUEUED:
|
||||
prependList(aDownload);
|
||||
break;
|
||||
|
||||
case nsIDM.DOWNLOAD_BLOCKED_POLICY:
|
||||
prependList(aDownload);
|
||||
// Should fall through, this is a final state but DOWNLOAD_QUEUED
|
||||
// is skipped. See nsDownloadManager::AddDownload.
|
||||
case nsIDM.DOWNLOAD_FAILED:
|
||||
case nsIDM.DOWNLOAD_CANCELED:
|
||||
case nsIDM.DOWNLOAD_BLOCKED_PARENTAL:
|
||||
case nsIDM.DOWNLOAD_DIRTY:
|
||||
case nsIDM.DOWNLOAD_FINISHED:
|
||||
downloadCompleted(aDownload);
|
||||
if (state == nsIDM.DOWNLOAD_FINISHED)
|
||||
autoRemoveAndClose(aDownload);
|
||||
break;
|
||||
case nsIDM.DOWNLOAD_DOWNLOADING: {
|
||||
dl = getDownload(aDownload.id);
|
||||
|
||||
// At this point, we know if we are an indeterminate download or not
|
||||
dl.setAttribute("progressmode", aDownload.percentComplete == -1 ?
|
||||
"undetermined" : "normal");
|
||||
|
||||
// As well as knowing the referrer
|
||||
let referrer = aDownload.referrer;
|
||||
if (referrer)
|
||||
dl.setAttribute("referrer", referrer.spec);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// autoRemoveAndClose could have already closed our window...
|
||||
try {
|
||||
if (!dl)
|
||||
dl = getDownload(aDownload.id);
|
||||
|
||||
// Update to the new state
|
||||
dl.setAttribute("state", state);
|
||||
|
||||
// Update ui text values after switching states
|
||||
updateTime(dl);
|
||||
updateStatus(dl);
|
||||
updateButtons(dl);
|
||||
} catch (e) { }
|
||||
},
|
||||
|
||||
onProgressChange: function dlPL_onProgressChange(aWebProgress, aRequest,
|
||||
aCurSelfProgress,
|
||||
aMaxSelfProgress,
|
||||
aCurTotalProgress,
|
||||
aMaxTotalProgress, aDownload)
|
||||
{
|
||||
var download = getDownload(aDownload.id);
|
||||
|
||||
// Update this download's progressmeter
|
||||
if (aDownload.percentComplete != -1) {
|
||||
download.setAttribute("progress", aDownload.percentComplete);
|
||||
|
||||
// Dispatch ValueChange for a11y
|
||||
let event = document.createEvent("Events");
|
||||
event.initEvent("ValueChange", true, true);
|
||||
document.getAnonymousElementByAttribute(download, "anonid", "progressmeter")
|
||||
.dispatchEvent(event);
|
||||
}
|
||||
|
||||
// Update the progress so the status can be correctly updated
|
||||
download.setAttribute("currBytes", aDownload.amountTransferred);
|
||||
download.setAttribute("maxBytes", aDownload.size);
|
||||
|
||||
// Update the rest of the UI (bytes transferred, bytes total, download rate,
|
||||
// time remaining).
|
||||
updateStatus(download, aDownload);
|
||||
|
||||
// Update window title
|
||||
onUpdateProgress();
|
||||
},
|
||||
|
||||
onStateChange: function(aWebProgress, aRequest, aState, aStatus, aDownload)
|
||||
{
|
||||
},
|
||||
|
||||
onSecurityChange: function(aWebProgress, aRequest, aState, aDownload)
|
||||
{
|
||||
}
|
||||
};
|
@ -1,327 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||
|
||||
<!DOCTYPE bindings [
|
||||
<!ENTITY % downloadDTD SYSTEM "chrome://mozapps/locale/downloads/downloads.dtd" >
|
||||
%downloadDTD;
|
||||
]>
|
||||
|
||||
<bindings id="downloadBindings"
|
||||
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="download-base" extends="chrome://global/content/bindings/richlistbox.xml#richlistitem">
|
||||
<resources>
|
||||
<stylesheet src="chrome://mozapps/skin/downloads/downloads.css"/>
|
||||
</resources>
|
||||
<implementation>
|
||||
<property name="paused">
|
||||
<getter>
|
||||
<![CDATA[
|
||||
return parseInt(this.getAttribute("state")) == Components.interfaces.nsIDownloadManager.DOWNLOAD_PAUSED;
|
||||
]]>
|
||||
</getter>
|
||||
</property>
|
||||
<property name="openable">
|
||||
<getter>
|
||||
<![CDATA[
|
||||
return parseInt(this.getAttribute("state")) == Components.interfaces.nsIDownloadManager.DOWNLOAD_FINISHED;
|
||||
]]>
|
||||
</getter>
|
||||
</property>
|
||||
<property name="inProgress">
|
||||
<getter>
|
||||
<![CDATA[
|
||||
var state = parseInt(this.getAttribute("state"));
|
||||
const dl = Components.interfaces.nsIDownloadManager;
|
||||
return state == dl.DOWNLOAD_NOTSTARTED ||
|
||||
state == dl.DOWNLOAD_QUEUED ||
|
||||
state == dl.DOWNLOAD_DOWNLOADING ||
|
||||
state == dl.DOWNLOAD_PAUSED ||
|
||||
state == dl.DOWNLOAD_SCANNING;
|
||||
]]>
|
||||
</getter>
|
||||
</property>
|
||||
<property name="removable">
|
||||
<getter>
|
||||
<![CDATA[
|
||||
var state = parseInt(this.getAttribute("state"));
|
||||
const dl = Components.interfaces.nsIDownloadManager;
|
||||
return state == dl.DOWNLOAD_FINISHED ||
|
||||
state == dl.DOWNLOAD_CANCELED ||
|
||||
state == dl.DOWNLOAD_BLOCKED_PARENTAL ||
|
||||
state == dl.DOWNLOAD_BLOCKED_POLICY ||
|
||||
state == dl.DOWNLOAD_DIRTY ||
|
||||
state == dl.DOWNLOAD_FAILED;
|
||||
]]>
|
||||
</getter>
|
||||
</property>
|
||||
<property name="buttons">
|
||||
<getter>
|
||||
<![CDATA[
|
||||
var startEl = document.getAnonymousNodes(this);
|
||||
if (!startEl.length)
|
||||
startEl = [this];
|
||||
|
||||
const XULNS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
|
||||
return startEl[0].getElementsByTagNameNS(XULNS, "button");
|
||||
]]>
|
||||
</getter>
|
||||
</property>
|
||||
</implementation>
|
||||
</binding>
|
||||
|
||||
<binding id="download-starting" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon" validate="always"
|
||||
xbl:inherits="src=image"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" class="name"/>
|
||||
<xul:progressmeter mode="normal" value="0" flex="1"
|
||||
anonid="progressmeter"/>
|
||||
<xul:label value="&starting.label;" class="status"/>
|
||||
<xul:spacer flex="1"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="center">
|
||||
<xul:button class="cancel mini-button" tooltiptext="&cmd.cancel.label;"
|
||||
cmd="cmd_cancel" ondblclick="event.stopPropagation();"
|
||||
oncommand="performCommand('cmd_cancel', this);"/>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-downloading" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1" class="downloadContentBox">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon" validate="always"
|
||||
xbl:inherits="src=image"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="2" class="name"/>
|
||||
<xul:hbox>
|
||||
<xul:vbox flex="1">
|
||||
<xul:progressmeter mode="normal" value="0" flex="1"
|
||||
anonid="progressmeter"
|
||||
xbl:inherits="value=progress,mode=progressmode"/>
|
||||
</xul:vbox>
|
||||
<xul:button class="pause mini-button" tooltiptext="&cmd.pause.label;"
|
||||
cmd="cmd_pause" ondblclick="event.stopPropagation();"
|
||||
oncommand="performCommand('cmd_pause', this);"/>
|
||||
<xul:button class="cancel mini-button" tooltiptext="&cmd.cancel.label;"
|
||||
cmd="cmd_cancel" ondblclick="event.stopPropagation();"
|
||||
oncommand="performCommand('cmd_cancel', this);"/>
|
||||
</xul:hbox>
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip" flex="1"
|
||||
crop="right" class="status"/>
|
||||
<xul:spacer flex="1"/>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-paused" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon" validate="always"
|
||||
xbl:inherits="src=image"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="2" class="name"/>
|
||||
<xul:hbox>
|
||||
<xul:vbox flex="1">
|
||||
<xul:progressmeter mode="normal" value="0" flex="1"
|
||||
anonid="progressmeter"
|
||||
xbl:inherits="value=progress,mode=progressmode"/>
|
||||
</xul:vbox>
|
||||
<xul:button class="resume mini-button" tooltiptext="&cmd.resume.label;"
|
||||
cmd="cmd_resume" ondblclick="event.stopPropagation();"
|
||||
oncommand="performCommand('cmd_resume', this);"/>
|
||||
<xul:button class="cancel mini-button" tooltiptext="&cmd.cancel.label;"
|
||||
cmd="cmd_cancel" ondblclick="event.stopPropagation();"
|
||||
oncommand="performCommand('cmd_cancel', this);"/>
|
||||
</xul:hbox>
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip" flex="1"
|
||||
crop="right" class="status"/>
|
||||
<xul:spacer flex="1"/>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-done" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon" validate="always"
|
||||
xbl:inherits="src=image"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="1" class="name"/>
|
||||
<xul:label xbl:inherits="value=dateTime,tooltiptext=dateTimeTip"
|
||||
class="dateTime"/>
|
||||
</xul:hbox>
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip"
|
||||
crop="end" flex="1" class="status"/>
|
||||
</xul:hbox>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-canceled" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon" validate="always"
|
||||
xbl:inherits="src=image"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="1" class="name"/>
|
||||
<xul:label xbl:inherits="value=dateTime,tooltiptext=dateTimeTip"
|
||||
class="dateTime"/>
|
||||
</xul:hbox>
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip"
|
||||
crop="end" flex="1" class="status"/>
|
||||
<xul:button class="retry mini-button" tooltiptext="&cmd.retry.label;"
|
||||
cmd="cmd_retry" ondblclick="event.stopPropagation();"
|
||||
oncommand="performCommand('cmd_retry', this);"/>
|
||||
</xul:hbox>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-failed" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon" validate="always"
|
||||
xbl:inherits="src=image"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="1" class="name"/>
|
||||
<xul:label xbl:inherits="value=dateTime,tooltiptext=dateTimeTip"
|
||||
class="dateTime"/>
|
||||
</xul:hbox>
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip"
|
||||
crop="end" flex="1" class="status"/>
|
||||
<xul:button class="retry mini-button" tooltiptext="&cmd.retry.label;"
|
||||
cmd="cmd_retry" ondblclick="event.stopPropagation();"
|
||||
oncommand="performCommand('cmd_retry', this);"/>
|
||||
</xul:hbox>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-blocked-parental" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon blockedIcon"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="1" class="name"/>
|
||||
<xul:label xbl:inherits="value=dateTime,tooltiptext=dateTimeTip"
|
||||
class="dateTime"/>
|
||||
</xul:hbox>
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip"
|
||||
crop="end" flex="1" class="status"/>
|
||||
</xul:hbox>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-blocked-policy" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon blockedIcon"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="1" class="name"/>
|
||||
<xul:label xbl:inherits="value=dateTime,tooltiptext=dateTimeTip"
|
||||
class="dateTime"/>
|
||||
</xul:hbox>
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip"
|
||||
crop="end" flex="1" class="status"/>
|
||||
</xul:hbox>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-scanning" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon" validate="always"
|
||||
xbl:inherits="src=image"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="2" class="name"/>
|
||||
<xul:hbox>
|
||||
<xul:vbox flex="1">
|
||||
<xul:progressmeter mode="undetermined" flex="1" />
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
<xul:label value="&scanning.label;" class="status"/>
|
||||
<xul:spacer flex="1"/>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
<binding id="download-dirty" extends="chrome://mozapps/content/downloads/download.xml#download-base">
|
||||
<content>
|
||||
<xul:hbox flex="1">
|
||||
<xul:vbox pack="center">
|
||||
<xul:image class="downloadTypeIcon blockedIcon"/>
|
||||
</xul:vbox>
|
||||
<xul:vbox pack="start" flex="1">
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=target,tooltiptext=target"
|
||||
crop="center" flex="1" class="name"/>
|
||||
<xul:label xbl:inherits="value=dateTime,tooltiptext=dateTimeTip"
|
||||
class="dateTime"/>
|
||||
</xul:hbox>
|
||||
<xul:hbox align="center" flex="1">
|
||||
<xul:label xbl:inherits="value=status,tooltiptext=statusTip"
|
||||
crop="end" flex="1" class="status"/>
|
||||
</xul:hbox>
|
||||
</xul:vbox>
|
||||
</xul:hbox>
|
||||
</content>
|
||||
</binding>
|
||||
|
||||
</bindings>
|
@ -1,50 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
richlistitem[type="download"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-starting');
|
||||
-moz-box-orient: vertical;
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="0"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-downloading');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="1"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-done');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="2"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-failed');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="3"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-canceled');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="4"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-paused');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="6"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-blocked-parental');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="7"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-scanning');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="8"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-dirty');
|
||||
}
|
||||
|
||||
richlistitem[type="download"][state="9"] {
|
||||
-moz-binding: url('chrome://mozapps/content/downloads/download.xml#download-blocked-policy');
|
||||
}
|
||||
|
||||
/* Only focus buttons in the selected item*/
|
||||
richlistitem[type="download"]:not([selected="true"]) button {
|
||||
-moz-user-focus: none;
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,164 +0,0 @@
|
||||
<?xml version="1.0"?>
|
||||
|
||||
# -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
#ifdef XP_UNIX
|
||||
#ifndef XP_MACOSX
|
||||
#define XP_GNOME 1
|
||||
#endif
|
||||
#endif
|
||||
|
||||
<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
|
||||
<?xml-stylesheet href="chrome://mozapps/content/downloads/downloads.css"?>
|
||||
<?xml-stylesheet href="chrome://mozapps/skin/downloads/downloads.css"?>
|
||||
|
||||
<!DOCTYPE window [
|
||||
<!ENTITY % downloadManagerDTD SYSTEM "chrome://mozapps/locale/downloads/downloads.dtd">
|
||||
%downloadManagerDTD;
|
||||
<!ENTITY % editMenuOverlayDTD SYSTEM "chrome://global/locale/editMenuOverlay.dtd">
|
||||
%editMenuOverlayDTD;
|
||||
]>
|
||||
|
||||
<window xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
|
||||
id="downloadManager" windowtype="Download:Manager"
|
||||
orient="vertical" title="&downloads.title;" statictitle="&downloads.title;"
|
||||
width="&window.width2;" height="&window.height;" screenX="10" screenY="10"
|
||||
persist="width height screenX screenY sizemode"
|
||||
onload="Startup();" onunload="Shutdown();"
|
||||
onclose="return closeWindow(false);">
|
||||
|
||||
<script type="application/javascript" src="chrome://mozapps/content/downloads/downloads.js"/>
|
||||
<script type="application/javascript" src="chrome://mozapps/content/downloads/DownloadProgressListener.js"/>
|
||||
<script type="application/javascript" src="chrome://global/content/contentAreaUtils.js"/>
|
||||
<script type="application/javascript" src="chrome://global/content/globalOverlay.js"/>
|
||||
|
||||
<stringbundleset id="downloadSet">
|
||||
<stringbundle id="brandStrings" src="chrome://branding/locale/brand.properties"/>
|
||||
<stringbundle id="downloadStrings" src="chrome://mozapps/locale/downloads/downloads.properties"/>
|
||||
</stringbundleset>
|
||||
|
||||
<!-- Use this commandset for command which do not depened on focus or selection -->
|
||||
<commandset id="generalCommands">
|
||||
<command id="cmd_findDownload" oncommand="setSearchboxFocus();"/>
|
||||
<command id="cmd_selectAllDownloads" oncommand="gDownloadsView.selectAll();"/>
|
||||
<command id="cmd_clearList" oncommand="clearDownloadList();"/>
|
||||
</commandset>
|
||||
|
||||
<keyset id="downloadKeys">
|
||||
<key keycode="VK_RETURN" oncommand="doDefaultForSelected();"/>
|
||||
<key id="key_pauseResume" key=" " oncommand="performCommand('cmd_pauseResume');"/>
|
||||
<key id="key_removeFromList" keycode="VK_DELETE" oncommand="performCommand('cmd_removeFromList');"/>
|
||||
#ifdef XP_MACOSX
|
||||
<key id="key_removeFromList2" keycode="VK_BACK" oncommand="performCommand('cmd_removeFromList');"/>
|
||||
#endif
|
||||
<key id="key_close" key="&cmd.close.commandKey;" oncommand="closeWindow(true);" modifiers="accel"/>
|
||||
#ifdef XP_GNOME
|
||||
<key id="key_close2" key="&cmd.close2Unix.commandKey;" oncommand="closeWindow(true);" modifiers="accel,shift"/>
|
||||
#else
|
||||
<key id="key_close2" key="&cmd.close2.commandKey;" oncommand="closeWindow(true);" modifiers="accel"/>
|
||||
#endif
|
||||
<key keycode="VK_ESCAPE" oncommand="closeWindow(true);"/>
|
||||
|
||||
<key id="key_findDownload"
|
||||
key="&cmd.find.commandKey;"
|
||||
modifiers="accel"
|
||||
command="cmd_findDownload"/>
|
||||
<key id="key_findDownload2"
|
||||
key="&cmd.search.commandKey;"
|
||||
modifiers="accel"
|
||||
command="cmd_findDownload"/>
|
||||
<key id="key_selectAllDownloads"
|
||||
key="&selectAllCmd.key;"
|
||||
modifiers="accel"
|
||||
command="cmd_selectAllDownloads"/>
|
||||
<key id="pasteKey"
|
||||
key="V"
|
||||
modifiers="accel"
|
||||
oncommand="pasteHandler();"/>
|
||||
</keyset>
|
||||
|
||||
<vbox id="contextMenuPalette" hidden="true">
|
||||
<menuitem id="menuitem_pause"
|
||||
label="&cmd.pause.label;" accesskey="&cmd.pause.accesskey;"
|
||||
oncommand="performCommand('cmd_pause');"
|
||||
cmd="cmd_pause"/>
|
||||
<menuitem id="menuitem_resume"
|
||||
label="&cmd.resume.label;" accesskey="&cmd.resume.accesskey;"
|
||||
oncommand="performCommand('cmd_resume');"
|
||||
cmd="cmd_resume"/>
|
||||
<menuitem id="menuitem_cancel"
|
||||
label="&cmd.cancel.label;" accesskey="&cmd.cancel.accesskey;"
|
||||
oncommand="performCommand('cmd_cancel');"
|
||||
cmd="cmd_cancel"/>
|
||||
|
||||
<menuitem id="menuitem_open" default="true"
|
||||
label="&cmd.open.label;" accesskey="&cmd.open.accesskey;"
|
||||
oncommand="performCommand('cmd_open');"
|
||||
cmd="cmd_open"/>
|
||||
<menuitem id="menuitem_show"
|
||||
#ifdef XP_MACOSX
|
||||
label="&cmd.showMac.label;"
|
||||
accesskey="&cmd.showMac.accesskey;"
|
||||
#else
|
||||
label="&cmd.show.label;"
|
||||
accesskey="&cmd.show.accesskey;"
|
||||
#endif
|
||||
oncommand="performCommand('cmd_show');"
|
||||
cmd="cmd_show"/>
|
||||
|
||||
<menuitem id="menuitem_retry" default="true"
|
||||
label="&cmd.retry.label;" accesskey="&cmd.retry.accesskey;"
|
||||
oncommand="performCommand('cmd_retry');"
|
||||
cmd="cmd_retry"/>
|
||||
|
||||
<menuitem id="menuitem_removeFromList"
|
||||
label="&cmd.removeFromList.label;" accesskey="&cmd.removeFromList.accesskey;"
|
||||
oncommand="performCommand('cmd_removeFromList');"
|
||||
cmd="cmd_removeFromList"/>
|
||||
|
||||
<menuseparator id="menuseparator"/>
|
||||
|
||||
<menuitem id="menuitem_openReferrer"
|
||||
label="&cmd.goToDownloadPage.label;"
|
||||
accesskey="&cmd.goToDownloadPage.accesskey;"
|
||||
oncommand="performCommand('cmd_openReferrer');"
|
||||
cmd="cmd_openReferrer"/>
|
||||
|
||||
<menuitem id="menuitem_copyLocation"
|
||||
label="&cmd.copyDownloadLink.label;"
|
||||
accesskey="&cmd.copyDownloadLink.accesskey;"
|
||||
oncommand="performCommand('cmd_copyLocation');"
|
||||
cmd="cmd_copyLocation"/>
|
||||
|
||||
<menuitem id="menuitem_selectAll"
|
||||
label="&selectAllCmd.label;"
|
||||
accesskey="&selectAllCmd.accesskey;"
|
||||
command="cmd_selectAllDownloads"/>
|
||||
</vbox>
|
||||
|
||||
<menupopup id="downloadContextMenu" onpopupshowing="return buildContextMenu(event);"/>
|
||||
|
||||
<richlistbox id="downloadView" seltype="multiple" flex="1"
|
||||
context="downloadContextMenu"
|
||||
ondblclick="onDownloadDblClick(event);"
|
||||
ondragstart="gDownloadDNDObserver.onDragStart(event);"
|
||||
ondragover="gDownloadDNDObserver.onDragOver(event);event.stopPropagation();"
|
||||
ondrop="gDownloadDNDObserver.onDrop(event)">
|
||||
</richlistbox>
|
||||
|
||||
<windowdragbox id="search" align="center">
|
||||
<button id="clearListButton" command="cmd_clearList"
|
||||
label="&cmd.clearList.label;"
|
||||
accesskey="&cmd.clearList.accesskey;"
|
||||
tooltiptext="&cmd.clearList.tooltip;"/>
|
||||
<spacer flex="1"/>
|
||||
<textbox type="search" id="searchbox" class="compact"
|
||||
aria-controls="downloadView"
|
||||
oncommand="buildDownloadList();" placeholder="&searchBox.label;"/>
|
||||
</windowdragbox>
|
||||
|
||||
</window>
|
@ -5,8 +5,3 @@
|
||||
toolkit.jar:
|
||||
% content mozapps %content/mozapps/
|
||||
* content/mozapps/downloads/unknownContentType.xul (content/unknownContentType.xul)
|
||||
* content/mozapps/downloads/downloads.xul (content/downloads.xul)
|
||||
content/mozapps/downloads/downloads.js (content/downloads.js)
|
||||
content/mozapps/downloads/DownloadProgressListener.js (content/DownloadProgressListener.js)
|
||||
content/mozapps/downloads/downloads.css (content/downloads.css)
|
||||
content/mozapps/downloads/download.xml (content/download.xml)
|
||||
|
@ -17,8 +17,7 @@ EXTRA_PP_COMPONENTS += [
|
||||
EXTRA_JS_MODULES += [
|
||||
'DownloadLastDir.jsm',
|
||||
'DownloadPaths.jsm',
|
||||
'DownloadTaskbarProgress.jsm',
|
||||
'DownloadUtils.jsm',
|
||||
]
|
||||
|
||||
JAR_MANIFESTS += ['jar.mn']
|
||||
JAR_MANIFESTS += ['jar.mn']
|
||||
|
@ -1,112 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#downloadManager {
|
||||
background-color: ThreeDFace;
|
||||
}
|
||||
|
||||
/* Download View */
|
||||
#downloadView {
|
||||
-moz-appearance: none !important;
|
||||
margin: 0;
|
||||
border-bottom: 2px solid;
|
||||
-moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
|
||||
}
|
||||
|
||||
/* Download View Items */
|
||||
richlistitem[type="download"] {
|
||||
padding: 4px 8px 4px 4px;
|
||||
min-height: 46px;
|
||||
}
|
||||
|
||||
richlistitem[type="download"]:not([selected="true"]):nth-child(odd) {
|
||||
background-color: -moz-oddtreerow;
|
||||
}
|
||||
|
||||
richlistitem[type="download"] .name {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
richlistitem[type="download"] .dateTime {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
.mini-button {
|
||||
-moz-appearance: none;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.mini-button > .button-box {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
menuitem:not([type]) {
|
||||
-moz-binding: url("chrome://global/content/bindings/menu.xml#menuitem-iconic");
|
||||
}
|
||||
|
||||
.cancel,
|
||||
#menuitem_cancel {
|
||||
list-style-image: url("moz-icon://stock/gtk-cancel?size=menu");
|
||||
}
|
||||
|
||||
#menuitem_open {
|
||||
list-style-image: url("moz-icon://stock/gtk-open?size=menu");
|
||||
}
|
||||
#menuitem_open[disabled="true"] {
|
||||
list-style-image: url("moz-icon://stock/gtk-open?size=menu&state=disabled");
|
||||
}
|
||||
|
||||
.pause,
|
||||
#menuitem_pause {
|
||||
list-style-image: url("moz-icon://stock/gtk-media-pause?size=menu");
|
||||
}
|
||||
|
||||
.pause[disabled="true"],
|
||||
#menuitem_pause[disabled="true"] {
|
||||
list-style-image: url("moz-icon://stock/gtk-media-pause?size=menu&state=disabled");
|
||||
}
|
||||
|
||||
.resume,
|
||||
#menuitem_resume {
|
||||
list-style-image: url("moz-icon://stock/gtk-media-play?size=menu");
|
||||
}
|
||||
|
||||
.retry,
|
||||
#menuitem_retry {
|
||||
list-style-image: url("moz-icon://stock/gtk-redo?size=menu");
|
||||
}
|
||||
|
||||
#menuitem_removeFromList {
|
||||
list-style-image: url("moz-icon://stock/gtk-remove?size=menu");
|
||||
}
|
||||
|
||||
#menuitem_copyLocation {
|
||||
list-style-image: url("moz-icon://stock/gtk-copy?size=menu");
|
||||
}
|
||||
|
||||
.blockedIcon {
|
||||
list-style-image: url("moz-icon://stock/gtk-dialog-error?size=dialog");
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
}
|
||||
|
||||
/* prevent flickering when changing states */
|
||||
.downloadTypeIcon {
|
||||
min-height: 32px;
|
||||
min-width: 32px;
|
||||
}
|
||||
|
||||
#clearListButton {
|
||||
list-style-image: url(moz-icon://stock/gtk-clear?size=button);
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
#clearListButton[disabled="true"] {
|
||||
list-style-image: url(moz-icon://stock/gtk-clear?size=button&state=disabled);
|
||||
}
|
@ -5,7 +5,6 @@
|
||||
toolkit.jar:
|
||||
#include ../../shared/mozapps.inc.mn
|
||||
skin/classic/mozapps/downloads/downloadIcon.png (downloads/downloadIcon.png)
|
||||
skin/classic/mozapps/downloads/downloads.css (downloads/downloads.css)
|
||||
* skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
|
||||
skin/classic/mozapps/extensions/category-search.png (extensions/category-search.png)
|
||||
skin/classic/mozapps/extensions/category-discover.png (extensions/category-discover.png)
|
||||
|
@ -1,123 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
%include ../../global/shared.inc
|
||||
|
||||
#downloadView {
|
||||
-moz-appearance: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border-width: 0;
|
||||
}
|
||||
|
||||
/* Download View Items */
|
||||
richlistitem[type="download"] {
|
||||
padding: 5px;
|
||||
min-height: 44px !important;
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
|
||||
richlistitem[type="download"]:not([selected="true"]):nth-child(odd) {
|
||||
background-color: -moz-oddtreerow;
|
||||
}
|
||||
|
||||
richlistitem[type="download"] .dateTime,
|
||||
richlistitem[type="download"] .status {
|
||||
font-size: smaller;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
richlistitem[selected="true"][type="download"] {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
richlistbox:focus > richlistitem[selected="true"][type="download"] .dateTime,
|
||||
richlistbox:focus > richlistitem[selected="true"][type="download"] .status {
|
||||
color: highlighttext;
|
||||
}
|
||||
|
||||
|
||||
richlistitem[type="download"] button {
|
||||
-moz-appearance: none;
|
||||
min-height: 16px;
|
||||
min-width: 16px;
|
||||
max-height: 16px;
|
||||
max-width: 16px;
|
||||
padding: 0;
|
||||
margin: 0 1px 0 1px;
|
||||
}
|
||||
|
||||
/**
|
||||
* Images for buttons in the interface
|
||||
*/
|
||||
richlistitem[type="download"] button {
|
||||
list-style-image: url(chrome://mozapps/skin/downloads/buttons.png);
|
||||
}
|
||||
.cancel {
|
||||
-moz-image-region: rect(0px, 16px, 16px, 0px);
|
||||
}
|
||||
.cancel:hover {
|
||||
-moz-image-region: rect(0px, 32px, 16px, 16px);
|
||||
}
|
||||
.cancel:hover:active {
|
||||
-moz-image-region: rect(0px, 48px, 16px, 32px);
|
||||
}
|
||||
|
||||
.pause {
|
||||
-moz-image-region: rect(48px, 16px, 64px, 0px);
|
||||
}
|
||||
.pause:hover {
|
||||
-moz-image-region: rect(48px, 32px, 64px, 16px);
|
||||
}
|
||||
.pause:not([disabled="true"]):hover:active {
|
||||
-moz-image-region: rect(48px, 48px, 64px, 32px);
|
||||
}
|
||||
.pause[disabled="true"] {
|
||||
-moz-image-region: rect(48px, 16px, 64px, 0px);
|
||||
}
|
||||
|
||||
.resume {
|
||||
-moz-image-region: rect(16px, 16px, 32px, 0px);
|
||||
}
|
||||
.resume:hover {
|
||||
-moz-image-region: rect(16px, 32px, 32px, 16px);
|
||||
}
|
||||
.resume:hover:active {
|
||||
-moz-image-region: rect(16px, 48px, 32px, 32px);
|
||||
}
|
||||
|
||||
.retry {
|
||||
-moz-image-region: rect(32px, 16px, 48px, 0px);
|
||||
}
|
||||
.retry:hover {
|
||||
-moz-image-region: rect(32px, 32px, 48px, 16px);
|
||||
}
|
||||
.retry:hover:active {
|
||||
-moz-image-region: rect(32px, 48px, 48px, 32px);
|
||||
}
|
||||
|
||||
.blockedIcon {
|
||||
list-style-image: url(chrome://global/skin/icons/Error.png);
|
||||
}
|
||||
|
||||
/* prevent flickering when changing states */
|
||||
.downloadTypeIcon {
|
||||
height: 32px;
|
||||
width: 32px;
|
||||
padding-inline-end: 2px;
|
||||
}
|
||||
|
||||
#search {
|
||||
-moz-box-pack: end;
|
||||
padding-inline-end: 4px;
|
||||
-moz-appearance: statusbar;
|
||||
}
|
||||
|
||||
#clearListButton {
|
||||
-moz-appearance: toolbarbutton;
|
||||
min-height: 18px;
|
||||
min-width: 0;
|
||||
margin: 0 6px;
|
||||
text-shadow: @loweredShadow@;
|
||||
}
|
@ -6,7 +6,6 @@ toolkit.jar:
|
||||
#include ../../shared/mozapps.inc.mn
|
||||
skin/classic/mozapps/downloads/buttons.png (downloads/buttons.png)
|
||||
skin/classic/mozapps/downloads/downloadIcon.png (downloads/downloadIcon.png)
|
||||
* skin/classic/mozapps/downloads/downloads.css (downloads/downloads.css)
|
||||
skin/classic/mozapps/downloads/unknownContentType.css (downloads/unknownContentType.css)
|
||||
skin/classic/mozapps/extensions/category-search.png (extensions/category-search.png)
|
||||
skin/classic/mozapps/extensions/category-discover.png (extensions/category-discover.png)
|
||||
|
@ -1,139 +0,0 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#downloadManager {
|
||||
background-color: ThreeDFace;
|
||||
}
|
||||
|
||||
/* Download View */
|
||||
@media not all and (-moz-windows-classic) {
|
||||
#downloadView {
|
||||
-moz-appearance: none;
|
||||
margin: 0;
|
||||
border-bottom: 2px solid;
|
||||
-moz-border-bottom-colors: ThreeDHighlight ThreeDLightShadow;
|
||||
}
|
||||
}
|
||||
|
||||
/* Download View Items */
|
||||
richlistitem[type="download"] {
|
||||
padding: 4px 8px 4px 4px;
|
||||
min-height: 46px;
|
||||
border-bottom: 1px solid ThreeDLightShadow;
|
||||
}
|
||||
|
||||
richlistitem[type="download"] .name {
|
||||
font-size: larger;
|
||||
}
|
||||
|
||||
richlistitem[type="download"] .dateTime {
|
||||
font-size: smaller;
|
||||
}
|
||||
|
||||
.mini-button {
|
||||
-moz-appearance: none;
|
||||
list-style-image: url(chrome://mozapps/skin/downloads/downloadButtons.png);
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
min-width: 0;
|
||||
min-height: 0;
|
||||
}
|
||||
|
||||
.mini-button > .button-box {
|
||||
padding: 0 !important;
|
||||
}
|
||||
|
||||
.cancel {
|
||||
-moz-image-region: rect(0px, 32px, 16px, 16px);
|
||||
}
|
||||
.cancel:hover {
|
||||
-moz-image-region: rect(16px, 32px, 32px, 16px);
|
||||
}
|
||||
.cancel:active {
|
||||
-moz-image-region: rect(32px, 32px, 48px, 16px);
|
||||
}
|
||||
.cancel[disabled="true"] {
|
||||
-moz-image-region: rect(48px, 32px, 64px, 16px);
|
||||
}
|
||||
.pause {
|
||||
-moz-image-region: rect(0px, 48px, 16px, 32px);
|
||||
}
|
||||
.pause:hover {
|
||||
-moz-image-region: rect(16px, 48px, 32px, 32px);
|
||||
}
|
||||
.pause:active {
|
||||
-moz-image-region: rect(32px, 48px, 48px, 32px);
|
||||
}
|
||||
.pause[disabled="true"] {
|
||||
-moz-image-region: rect(48px, 48px, 64px, 32px);
|
||||
}
|
||||
.resume {
|
||||
-moz-image-region: rect(0px, 16px, 16px, 0px);
|
||||
}
|
||||
.resume:hover {
|
||||
-moz-image-region: rect(16px, 16px, 32px, 0px);
|
||||
}
|
||||
.resume:active {
|
||||
-moz-image-region: rect(32px, 16px, 48px, 0px);
|
||||
}
|
||||
.resume[disabled="true"] {
|
||||
-moz-image-region: rect(48px, 16px, 64px, 0px);
|
||||
}
|
||||
.retry {
|
||||
-moz-image-region: rect(0px, 64px, 16px, 48px);
|
||||
}
|
||||
.retry:hover {
|
||||
-moz-image-region: rect(16px, 64px, 32px, 48px);
|
||||
}
|
||||
.retry:active {
|
||||
-moz-image-region: rect(32px, 64px, 48px, 48px);
|
||||
}
|
||||
.retry[disabled="true"] {
|
||||
-moz-image-region: rect(48px, 64px, 64px, 48px);
|
||||
}
|
||||
|
||||
.blockedIcon {
|
||||
list-style-image: url(chrome://global/skin/icons/Error.png);
|
||||
}
|
||||
|
||||
/* prevent flickering when changing states */
|
||||
.downloadTypeIcon {
|
||||
min-height: 32px;
|
||||
min-width: 32px;
|
||||
}
|
||||
|
||||
#clearListButton {
|
||||
min-height: 0;
|
||||
min-width: 0;
|
||||
margin-top: 3px;
|
||||
}
|
||||
|
||||
@media (-moz-windows-compositor) {
|
||||
#downloadManager {
|
||||
-moz-appearance: -moz-win-glass;
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
#downloadView {
|
||||
/* Clamp glass bounds to the rich list so our glass haze stays constant. */
|
||||
-moz-appearance: -moz-win-exclude-glass;
|
||||
border: none;
|
||||
}
|
||||
|
||||
windowdragbox {
|
||||
-moz-binding: url("chrome://global/content/bindings/general.xml#windowdragbox");
|
||||
}
|
||||
|
||||
#clearListButton {
|
||||
margin-inline-start: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
#searchbox {
|
||||
margin-inline-end: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
@ -5,7 +5,6 @@
|
||||
toolkit.jar:
|
||||
#include ../../shared/mozapps.inc.mn
|
||||
skin/classic/mozapps/downloads/downloadIcon.png (downloads/downloadIcon.png)
|
||||
skin/classic/mozapps/downloads/downloads.css (downloads/downloads.css)
|
||||
* skin/classic/mozapps/extensions/extensions.css (extensions/extensions.css)
|
||||
skin/classic/mozapps/extensions/category-search.png (extensions/category-search.png)
|
||||
skin/classic/mozapps/extensions/category-discover.png (extensions/category-discover.png)
|
||||
|
Loading…
Reference in New Issue
Block a user