summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/download/download_shelf.cc7
-rw-r--r--chrome/browser/download/download_shelf.h9
-rw-r--r--chrome/browser/gtk/download_item_gtk.cc2
-rw-r--r--chrome/browser/views/download_item_view.cc1
4 files changed, 15 insertions, 4 deletions
diff --git a/chrome/browser/download/download_shelf.cc b/chrome/browser/download/download_shelf.cc
index d3d6ade..2be924f 100644
--- a/chrome/browser/download/download_shelf.cc
+++ b/chrome/browser/download/download_shelf.cc
@@ -55,6 +55,8 @@ std::wstring DownloadShelfContextMenu::GetItemLabel(int id) const {
return l10n_util::GetString(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE);
case CANCEL:
return l10n_util::GetString(IDS_DOWNLOAD_MENU_CANCEL);
+ case REMOVE_ITEM:
+ return l10n_util::GetString(IDS_DOWNLOAD_MENU_REMOVE_ITEM);
default:
NOTREACHED();
}
@@ -70,6 +72,8 @@ bool DownloadShelfContextMenu::IsItemCommandEnabled(int id) const {
return download_util::CanOpenDownload(download_);
case CANCEL:
return download_->state() == DownloadItem::IN_PROGRESS;
+ case REMOVE_ITEM:
+ return download_->state() == DownloadItem::COMPLETE;
default:
return id > 0 && id < MENU_LAST;
}
@@ -93,6 +97,9 @@ void DownloadShelfContextMenu::ExecuteItemCommand(int id) {
case CANCEL:
model_->CancelTask();
break;
+ case REMOVE_ITEM:
+ download_->Remove(false);
+ break;
default:
NOTREACHED();
}
diff --git a/chrome/browser/download/download_shelf.h b/chrome/browser/download/download_shelf.h
index 61cae0e..6718a9b 100644
--- a/chrome/browser/download/download_shelf.h
+++ b/chrome/browser/download/download_shelf.h
@@ -51,10 +51,11 @@ class DownloadShelfContextMenu {
explicit DownloadShelfContextMenu(BaseDownloadItemModel* download_model);
enum ContextMenuCommands {
- SHOW_IN_FOLDER = 1, // Open a file explorer window with the item selected
- OPEN_WHEN_COMPLETE, // Open the download when it's finished
- ALWAYS_OPEN_TYPE, // Default this file extension to always open
- CANCEL, // Cancel the download
+ SHOW_IN_FOLDER = 1, // Open a file explorer window with the item selected.
+ OPEN_WHEN_COMPLETE, // Open the download when it's finished.
+ ALWAYS_OPEN_TYPE, // Default this file extension to always open.
+ CANCEL, // Cancel the download.
+ REMOVE_ITEM, // Removes the item from the download shelf.
MENU_LAST
};
diff --git a/chrome/browser/gtk/download_item_gtk.cc b/chrome/browser/gtk/download_item_gtk.cc
index 78a0b46..f0c38b7 100644
--- a/chrome/browser/gtk/download_item_gtk.cc
+++ b/chrome/browser/gtk/download_item_gtk.cc
@@ -141,6 +141,7 @@ MenuCreateMaterial DownloadShelfContextMenuGtk::finished_download_menu[] = {
{ MENU_SEPARATOR, 0, 0, 0, NULL },
{ MENU_NORMAL, SHOW_IN_FOLDER, IDS_DOWNLOAD_LINK_SHOW, 0, NULL},
{ MENU_SEPARATOR, 0, 0, 0, NULL },
+ { MENU_NORMAL, REMOVE_ITEM, IDS_DOWNLOAD_MENU_REMOVE_ITEM, 0, NULL},
{ MENU_NORMAL, CANCEL, IDS_DOWNLOAD_MENU_CANCEL, 0, NULL},
{ MENU_END, 0, 0, 0, NULL },
};
@@ -153,6 +154,7 @@ MenuCreateMaterial DownloadShelfContextMenuGtk::in_progress_download_menu[] = {
{ MENU_SEPARATOR, 0, 0, 0, NULL },
{ MENU_NORMAL, SHOW_IN_FOLDER, IDS_DOWNLOAD_LINK_SHOW, 0, NULL},
{ MENU_SEPARATOR, 0, 0, 0, NULL },
+ { MENU_NORMAL, REMOVE_ITEM, IDS_DOWNLOAD_MENU_REMOVE_ITEM, 0, NULL},
{ MENU_NORMAL, CANCEL, IDS_DOWNLOAD_MENU_CANCEL, 0, NULL},
{ MENU_END, 0, 0, 0, NULL },
};
diff --git a/chrome/browser/views/download_item_view.cc b/chrome/browser/views/download_item_view.cc
index 51f9ad9..3e9d642 100644
--- a/chrome/browser/views/download_item_view.cc
+++ b/chrome/browser/views/download_item_view.cc
@@ -98,6 +98,7 @@ class DownloadShelfContextMenuWin : public DownloadShelfContextMenu,
context_menu->AppendSeparator();
context_menu->AppendMenuItem(SHOW_IN_FOLDER, L"", views::Menu::NORMAL);
context_menu->AppendSeparator();
+ context_menu->AppendMenuItem(REMOVE_ITEM, L"", views::Menu::NORMAL);
context_menu->AppendMenuItem(CANCEL, L"", views::Menu::NORMAL);
context_menu->RunMenuAt(point.x(), point.y());
}