OLD | NEW |
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 11 matching lines...) Expand all Loading... |
22 BaseDownloadItemModel* download_model) | 22 BaseDownloadItemModel* download_model) |
23 : download_(download_model->download()), | 23 : download_(download_model->download()), |
24 model_(download_model) { | 24 model_(download_model) { |
25 } | 25 } |
26 | 26 |
27 DownloadShelfContextMenu::~DownloadShelfContextMenu() { | 27 DownloadShelfContextMenu::~DownloadShelfContextMenu() { |
28 } | 28 } |
29 | 29 |
30 bool DownloadShelfContextMenu::IsCommandIdChecked(int command_id) const { | 30 bool DownloadShelfContextMenu::IsCommandIdChecked(int command_id) const { |
31 switch (command_id) { | 31 switch (command_id) { |
32 case OPEN_WHEN_COMPLETE: { | 32 case OPEN_WHEN_COMPLETE: |
33 return download_->open_when_complete(); | 33 return download_->open_when_complete(); |
34 } | 34 case ALWAYS_OPEN_TYPE: |
35 case ALWAYS_OPEN_TYPE: { | 35 return download_->ShouldOpenFileBasedOnExtension(); |
36 return download_->manager()->ShouldOpenFileBasedOnExtension( | |
37 download_->full_path()); | |
38 } | |
39 } | 36 } |
40 return false; | 37 return false; |
41 } | 38 } |
42 | 39 |
43 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const { | 40 string16 DownloadShelfContextMenu::GetLabelForCommandId(int command_id) const { |
44 switch (command_id) { | 41 switch (command_id) { |
45 case SHOW_IN_FOLDER: | 42 case SHOW_IN_FOLDER: |
46 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW); | 43 return l10n_util::GetStringUTF16(IDS_DOWNLOAD_MENU_SHOW); |
47 case OPEN_WHEN_COMPLETE: | 44 case OPEN_WHEN_COMPLETE: |
48 if (download_->state() == DownloadItem::IN_PROGRESS) | 45 if (download_->state() == DownloadItem::IN_PROGRESS) |
(...skipping 14 matching lines...) Expand all Loading... |
63 } | 60 } |
64 return string16(); | 61 return string16(); |
65 } | 62 } |
66 | 63 |
67 bool DownloadShelfContextMenu::IsCommandIdEnabled(int command_id) const { | 64 bool DownloadShelfContextMenu::IsCommandIdEnabled(int command_id) const { |
68 switch (command_id) { | 65 switch (command_id) { |
69 case SHOW_IN_FOLDER: | 66 case SHOW_IN_FOLDER: |
70 case OPEN_WHEN_COMPLETE: | 67 case OPEN_WHEN_COMPLETE: |
71 return download_->state() != DownloadItem::CANCELLED; | 68 return download_->state() != DownloadItem::CANCELLED; |
72 case ALWAYS_OPEN_TYPE: | 69 case ALWAYS_OPEN_TYPE: |
73 return download_util::CanOpenDownload(download_); | 70 return download_->CanOpenDownload(); |
74 case CANCEL: | 71 case CANCEL: |
75 return download_->state() == DownloadItem::IN_PROGRESS; | 72 return download_->state() == DownloadItem::IN_PROGRESS; |
76 case TOGGLE_PAUSE: | 73 case TOGGLE_PAUSE: |
77 return download_->state() == DownloadItem::IN_PROGRESS; | 74 return download_->state() == DownloadItem::IN_PROGRESS; |
78 default: | 75 default: |
79 return command_id > 0 && command_id < MENU_LAST; | 76 return command_id > 0 && command_id < MENU_LAST; |
80 } | 77 } |
81 } | 78 } |
82 | 79 |
83 void DownloadShelfContextMenu::ExecuteCommand(int command_id) { | 80 void DownloadShelfContextMenu::ExecuteCommand(int command_id) { |
84 switch (command_id) { | 81 switch (command_id) { |
85 case SHOW_IN_FOLDER: | 82 case SHOW_IN_FOLDER: |
86 download_->manager()->ShowDownloadInShell(download_); | 83 download_->ShowDownloadInShell(); |
87 break; | 84 break; |
88 case OPEN_WHEN_COMPLETE: | 85 case OPEN_WHEN_COMPLETE: |
89 download_util::OpenDownload(download_); | 86 download_->OpenDownload(); |
90 break; | 87 break; |
91 case ALWAYS_OPEN_TYPE: { | 88 case ALWAYS_OPEN_TYPE: { |
92 download_->manager()->OpenFilesBasedOnExtension( | 89 download_->OpenFilesBasedOnExtension( |
93 download_->full_path(), !IsCommandIdChecked(ALWAYS_OPEN_TYPE)); | 90 !IsCommandIdChecked(ALWAYS_OPEN_TYPE)); |
94 break; | 91 break; |
95 } | 92 } |
96 case CANCEL: | 93 case CANCEL: |
97 model_->CancelTask(); | 94 model_->CancelTask(); |
98 break; | 95 break; |
99 case TOGGLE_PAUSE: | 96 case TOGGLE_PAUSE: |
100 // It is possible for the download to complete before the user clicks the | 97 // It is possible for the download to complete before the user clicks the |
101 // menu item, recheck if the download is in progress state before toggling | 98 // menu item, recheck if the download is in progress state before toggling |
102 // pause. | 99 // pause. |
103 if (download_->state() == DownloadItem::IN_PROGRESS) | 100 if (download_->state() == DownloadItem::IN_PROGRESS) |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 ALWAYS_OPEN_TYPE, IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); | 149 ALWAYS_OPEN_TYPE, IDS_DOWNLOAD_MENU_ALWAYS_OPEN_TYPE); |
153 finished_download_menu_model_->AddSeparator(); | 150 finished_download_menu_model_->AddSeparator(); |
154 finished_download_menu_model_->AddItemWithStringId( | 151 finished_download_menu_model_->AddItemWithStringId( |
155 SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW); | 152 SHOW_IN_FOLDER, IDS_DOWNLOAD_MENU_SHOW); |
156 finished_download_menu_model_->AddSeparator(); | 153 finished_download_menu_model_->AddSeparator(); |
157 finished_download_menu_model_->AddItemWithStringId( | 154 finished_download_menu_model_->AddItemWithStringId( |
158 CANCEL, IDS_DOWNLOAD_MENU_CANCEL); | 155 CANCEL, IDS_DOWNLOAD_MENU_CANCEL); |
159 | 156 |
160 return finished_download_menu_model_.get(); | 157 return finished_download_menu_model_.get(); |
161 } | 158 } |
OLD | NEW |