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:
reed%reedloden.com 2007-09-05 21:19:12 +00:00
Родитель 20fb3d286c
Коммит 3283743bc2
3 изменённых файлов: 38 добавлений и 7 удалений

Просмотреть файл

@ -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);"/>