| 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 |