зеркало из https://github.com/mozilla/pjs.git
Bug 227749 - "Add "Copy Source Location" to download manager context menu" [p=jhenry@ccs.neu.edu (Jon Henry) r=sdwilsh ui-r=beltzner]
This commit is contained in:
Родитель
20fb3d286c
Коммит
3283743bc2
|
@ -28,6 +28,8 @@
|
|||
<!ENTITY cmd.openWith.accesskey "h">
|
||||
<!ENTITY cmd.retry.label "Retry">
|
||||
<!ENTITY cmd.retry.accesskey "R">
|
||||
<!ENTITY cmd.copyLocation.label "Copy Source Location">
|
||||
<!ENTITY cmd.copyLocation.accesskey "L">
|
||||
<!ENTITY cmd.remove.label "Remove">
|
||||
<!ENTITY cmd.remove.accesskey "e">
|
||||
<!ENTITY cmd.info.label "Information">
|
||||
|
|
|
@ -364,6 +364,15 @@ function retryDownload(aDownload)
|
|||
gDownloadManager.retryDownload(aDownload.getAttribute("dlid"));
|
||||
}
|
||||
|
||||
function copySourceLocation(aDownload)
|
||||
{
|
||||
var uri = aDownload.getAttribute("uri");
|
||||
var clipboard = Cc["@mozilla.org/widget/clipboardhelper;1"].
|
||||
getService(Ci.nsIClipboardHelper);
|
||||
|
||||
clipboard.copyString(uri);
|
||||
}
|
||||
|
||||
// This is called by the progress listener. We don't actually use the event
|
||||
// system here to minimize time wastage.
|
||||
var gLastComputedMean = -1;
|
||||
|
@ -449,19 +458,26 @@ function Shutdown()
|
|||
// View Context Menus
|
||||
var gContextMenus = [
|
||||
// DOWNLOAD_DOWNLOADING
|
||||
["menuitem_pause", "menuitem_cancel"],
|
||||
["menuitem_pause", "menuitem_cancel", "menuseparator_copy_location",
|
||||
"menuitem_copyLocation"],
|
||||
// DOWNLOAD_FINISHED
|
||||
["menuitem_open", "menuitem_show", "menuitem_remove"],
|
||||
["menuitem_open", "menuitem_show", "menuitem_remove",
|
||||
"menuseparator_copy_location", "menuitem_copyLocation"],
|
||||
// DOWNLOAD_FAILED
|
||||
["menuitem_retry", "menuitem_remove"],
|
||||
["menuitem_retry", "menuitem_remove", "menuseparator_copy_location",
|
||||
"menuitem_copyLocation"],
|
||||
// DOWNLOAD_CANCELED
|
||||
["menuitem_retry", "menuitem_remove"],
|
||||
["menuitem_retry", "menuitem_remove", "menuseparator_copy_location",
|
||||
"menuitem_copyLocation"],
|
||||
// DOWNLOAD_PAUSED
|
||||
["menuitem_resume", "menuitem_cancel"],
|
||||
["menuitem_resume", "menuitem_cancel", "menuseparator_copy_location",
|
||||
"menuitem_copyLocation"],
|
||||
// DOWNLOAD_QUEUED
|
||||
["menuitem_cancel"],
|
||||
["menuitem_cancel", "menuseparator_copy_location",
|
||||
"menuitem_copyLocation"],
|
||||
// DOWNLOAD_BLOCKED
|
||||
["menuitem_retry", "menuitem_remove"]
|
||||
["menuitem_retry", "menuitem_remove", "menuseparator_copy_location",
|
||||
"menuitem_copyLocation"]
|
||||
];
|
||||
|
||||
function buildContextMenu(aEvent)
|
||||
|
@ -557,6 +573,7 @@ var gDownloadViewController = {
|
|||
case "cmd_retry":
|
||||
return dl.removable;
|
||||
case "cmd_showInfo":
|
||||
case "cmd_copyLocation":
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
@ -616,6 +633,9 @@ var gDownloadViewController = {
|
|||
},
|
||||
cmd_showInfo: function(aSelectedItem) {
|
||||
showDownloadInfo(aSelectedItem);
|
||||
},
|
||||
cmd_copyLocation: function(aSelectedItem) {
|
||||
copySourceLocation(aSelectedItem);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
|
|
@ -98,6 +98,8 @@
|
|||
oncommand="gDownloadViewController.doCommand('cmd_show');"/>
|
||||
<command id="cmd_showInfo"
|
||||
oncommand="gDownloadViewController.doCommand('cmd_showInfo');"/>
|
||||
<command id="cmd_copyLocation"
|
||||
oncommand="gDownloadViewController.doCommand('cmd_copyLocation');"/>
|
||||
</commandset>
|
||||
|
||||
<keyset id="downloadKeys">
|
||||
|
@ -147,6 +149,13 @@
|
|||
<menuitem id="menuitem_remove"
|
||||
label="&cmd.remove.label;" accesskey="&cmd.remove.accesskey;"
|
||||
command="cmd_remove"/>
|
||||
|
||||
<menuseparator id="menuseparator_copy_location"/>
|
||||
|
||||
<menuitem id="menuitem_copyLocation"
|
||||
label="&cmd.copyLocation.label;"
|
||||
accesskey="&cmd.copyLocation.accesskey;"
|
||||
command="cmd_copyLocation"/>
|
||||
</vbox>
|
||||
|
||||
<menupopup id="downloadContextMenu" onpopupshowing="return buildContextMenu(event);"/>
|
||||
|
|
Загрузка…
Ссылка в новой задаче