Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(11)

Side by Side Diff: chrome/browser/download/download_shelf.cc

Issue 246004: Remove the context menu item 'Remove from list' from download shelf (Closed)
Patch Set: rebased Created 11 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/download/download_shelf.h ('k') | chrome/browser/views/download_item_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/download/download_shelf.h" 5 #include "chrome/browser/download/download_shelf.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "chrome/browser/browser.h" 9 #include "chrome/browser/browser.h"
10 #include "chrome/browser/dom_ui/downloads_ui.h" 10 #include "chrome/browser/dom_ui/downloads_ui.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 case SHOW_IN_FOLDER: 52 case SHOW_IN_FOLDER:
53 return l10n_util::GetString(IDS_DOWNLOAD_LINK_SHOW); 53 return l10n_util::GetString(IDS_DOWNLOAD_LINK_SHOW);
54 case OPEN_WHEN_COMPLETE: 54 case OPEN_WHEN_COMPLETE:
55 if (download_->state() == DownloadItem::IN_PROGRESS) 55 if (download_->state() == DownloadItem::IN_PROGRESS)
56 return l10n_util::GetString(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE); 56 return l10n_util::GetString(IDS_DOWNLOAD_MENU_OPEN_WHEN_COMPLETE);
57 return l10n_util::GetString(IDS_DOWNLOAD_MENU_OPEN); 57 return l10n_util::GetString(IDS_DOWNLOAD_MENU_OPEN);
58 case ALWAYS_OPEN_TYPE: 58 case ALWAYS_OPEN_TYPE:
59 return l10n_util::GetString(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); 59 return l10n_util::GetString(IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE);
60 case CANCEL: 60 case CANCEL:
61 return l10n_util::GetString(IDS_DOWNLOAD_MENU_CANCEL); 61 return l10n_util::GetString(IDS_DOWNLOAD_MENU_CANCEL);
62 case REMOVE_ITEM:
63 return l10n_util::GetString(IDS_DOWNLOAD_MENU_REMOVE_ITEM);
64 case TOGGLE_PAUSE: { 62 case TOGGLE_PAUSE: {
65 if (download_->is_paused()) 63 if (download_->is_paused())
66 return l10n_util::GetString(IDS_DOWNLOAD_MENU_RESUME_ITEM); 64 return l10n_util::GetString(IDS_DOWNLOAD_MENU_RESUME_ITEM);
67 else 65 else
68 return l10n_util::GetString(IDS_DOWNLOAD_MENU_PAUSE_ITEM); 66 return l10n_util::GetString(IDS_DOWNLOAD_MENU_PAUSE_ITEM);
69 } 67 }
70 default: 68 default:
71 NOTREACHED(); 69 NOTREACHED();
72 } 70 }
73 return std::wstring(); 71 return std::wstring();
74 } 72 }
75 73
76 bool DownloadShelfContextMenu::IsItemCommandEnabled(int id) const { 74 bool DownloadShelfContextMenu::IsItemCommandEnabled(int id) const {
77 switch (id) { 75 switch (id) {
78 case SHOW_IN_FOLDER: 76 case SHOW_IN_FOLDER:
79 case OPEN_WHEN_COMPLETE: 77 case OPEN_WHEN_COMPLETE:
80 return download_->state() != DownloadItem::CANCELLED; 78 return download_->state() != DownloadItem::CANCELLED;
81 case ALWAYS_OPEN_TYPE: 79 case ALWAYS_OPEN_TYPE:
82 return download_util::CanOpenDownload(download_); 80 return download_util::CanOpenDownload(download_);
83 case CANCEL: 81 case CANCEL:
84 return download_->state() == DownloadItem::IN_PROGRESS; 82 return download_->state() == DownloadItem::IN_PROGRESS;
85 case REMOVE_ITEM:
86 return download_->state() == DownloadItem::COMPLETE ||
87 download_->state() == DownloadItem::CANCELLED;
88 case TOGGLE_PAUSE: 83 case TOGGLE_PAUSE:
89 return download_->state() == DownloadItem::IN_PROGRESS; 84 return download_->state() == DownloadItem::IN_PROGRESS;
90 default: 85 default:
91 return id > 0 && id < MENU_LAST; 86 return id > 0 && id < MENU_LAST;
92 } 87 }
93 } 88 }
94 89
95 void DownloadShelfContextMenu::ExecuteItemCommand(int id) { 90 void DownloadShelfContextMenu::ExecuteItemCommand(int id) {
96 switch (id) { 91 switch (id) {
97 case SHOW_IN_FOLDER: 92 case SHOW_IN_FOLDER:
98 download_->manager()->ShowDownloadInShell(download_); 93 download_->manager()->ShowDownloadInShell(download_);
99 break; 94 break;
100 case OPEN_WHEN_COMPLETE: 95 case OPEN_WHEN_COMPLETE:
101 download_util::OpenDownload(download_); 96 download_util::OpenDownload(download_);
102 break; 97 break;
103 case ALWAYS_OPEN_TYPE: { 98 case ALWAYS_OPEN_TYPE: {
104 const FilePath::StringType extension = 99 const FilePath::StringType extension =
105 file_util::GetFileExtensionFromPath(download_->full_path()); 100 file_util::GetFileExtensionFromPath(download_->full_path());
106 download_->manager()->OpenFilesOfExtension( 101 download_->manager()->OpenFilesOfExtension(
107 extension, !ItemIsChecked(ALWAYS_OPEN_TYPE)); 102 extension, !ItemIsChecked(ALWAYS_OPEN_TYPE));
108 break; 103 break;
109 } 104 }
110 case CANCEL: 105 case CANCEL:
111 model_->CancelTask(); 106 model_->CancelTask();
112 break; 107 break;
113 case REMOVE_ITEM:
114 download_->Remove(false);
115 // |download_| has been deleted now, prevent further access to it.
116 download_ = NULL;
117 model_ = NULL;
118 break;
119 case TOGGLE_PAUSE: 108 case TOGGLE_PAUSE:
120 // It is possible for the download to complete before the user clicks the 109 // It is possible for the download to complete before the user clicks the
121 // menu item, recheck if the download is in progress state before toggling 110 // menu item, recheck if the download is in progress state before toggling
122 // pause. 111 // pause.
123 if (download_->state() == DownloadItem::IN_PROGRESS) 112 if (download_->state() == DownloadItem::IN_PROGRESS)
124 download_->TogglePause(); 113 download_->TogglePause();
125 break; 114 break;
126 default: 115 default:
127 NOTREACHED(); 116 NOTREACHED();
128 } 117 }
129 } 118 }
OLDNEW
« no previous file with comments | « chrome/browser/download/download_shelf.h ('k') | chrome/browser/views/download_item_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698