Chromium Code Reviews| Index: chrome/browser/ui/views/download/download_in_progress_dialog_view.cc |
| diff --git a/chrome/browser/ui/views/download/download_in_progress_dialog_view.cc b/chrome/browser/ui/views/download/download_in_progress_dialog_view.cc |
| index 91ad0f589cb631bf617596f54fab628ea95b926b..2812bea34d5ce5de0577cd747ffcdcef714e1918 100644 |
| --- a/chrome/browser/ui/views/download/download_in_progress_dialog_view.cc |
| +++ b/chrome/browser/ui/views/download/download_in_progress_dialog_view.cc |
| @@ -15,7 +15,7 @@ |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/gfx/size.h" |
| #include "ui/views/border.h" |
| -#include "ui/views/controls/label.h" |
| +#include "ui/views/controls/message_box_view.h" |
| #include "ui/views/layout/grid_layout.h" |
| #include "ui/views/widget/widget.h" |
| @@ -29,8 +29,7 @@ void DownloadInProgressDialogView::Show(Browser* browser, |
| DownloadInProgressDialogView::DownloadInProgressDialogView(Browser* browser) |
| : browser_(browser), |
| - warning_(NULL), |
| - explanation_(NULL) { |
| + message_box_view_(NULL) { |
| int download_count; |
| Browser::DownloadClosePreventionType type = |
| browser_->OkToCloseWithInProgressDownloads(&download_count); |
| @@ -40,73 +39,47 @@ DownloadInProgressDialogView::DownloadInProgressDialogView(Browser* browser) |
| // to close. |
| DCHECK_NE(Browser::DOWNLOAD_CLOSE_OK, type); |
| - // TODO(rdsmith): This dialog should be different depending on whether we're |
| - // closing the last incognito window of a profile or doing browser shutdown. |
| - // See http://crbug.com/88421. |
| - |
| - string16 warning_text; |
| string16 explanation_text; |
| - if (download_count == 1) { |
| - warning_text = l10n_util::GetStringUTF16( |
| - IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_WARNING); |
| - explanation_text = l10n_util::GetStringUTF16( |
| - IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION); |
| + if (type == Browser::DOWNLOAD_CLOSE_BROWSER_SHUTDOWN) { |
|
James Cook
2012/04/17 19:03:21
Maybe a switch statement on the type with a NOTREA
benrg
2012/04/17 20:39:14
Done.
|
| + if (download_count == 1) { |
| + title_text_ = l10n_util::GetStringUTF16( |
| + IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_TITLE); |
| + explanation_text = l10n_util::GetStringUTF16( |
| + IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION); |
| + } else { |
| + title_text_ = l10n_util::GetStringUTF16( |
| + IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_TITLE); |
| + explanation_text = l10n_util::GetStringUTF16( |
| + IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION); |
| + } |
| ok_button_text_ = l10n_util::GetStringUTF16( |
| - IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL); |
| - cancel_button_text_ = l10n_util::GetStringUTF16( |
| - IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_CANCEL_BUTTON_LABEL); |
| - } else { |
| - warning_text = l10n_util::GetStringFUTF16( |
| - IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_WARNING, |
| - base::IntToString16(download_count)); |
| - explanation_text = l10n_util::GetStringUTF16( |
| - IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION); |
| + IDS_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL); |
| + } else { // DOWNLOAD_CLOSE_LAST_WINDOW_IN_INCOGNITO_PROFILE |
| + if (download_count == 1) { |
| + title_text_ = l10n_util::GetStringUTF16( |
| + IDS_SINGLE_INCOGNITO_DOWNLOAD_REMOVE_CONFIRM_TITLE); |
| + explanation_text = l10n_util::GetStringUTF16( |
| + IDS_SINGLE_INCOGNITO_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION); |
| + } else { |
| + title_text_ = l10n_util::GetStringUTF16( |
| + IDS_MULTIPLE_INCOGNITO_DOWNLOADS_REMOVE_CONFIRM_TITLE); |
| + explanation_text = l10n_util::GetStringUTF16( |
| + IDS_MULTIPLE_INCOGNITO_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION); |
| + } |
| ok_button_text_ = l10n_util::GetStringUTF16( |
| - IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_OK_BUTTON_LABEL); |
| - cancel_button_text_ = l10n_util::GetStringUTF16( |
| - IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_CANCEL_BUTTON_LABEL); |
| + IDS_INCOGNITO_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL); |
| } |
| + cancel_button_text_ = l10n_util::GetStringUTF16( |
| + IDS_DOWNLOAD_REMOVE_CONFIRM_CANCEL_BUTTON_LABEL); |
| - // There are two lines of text: the bold warning label and the text |
| - // explanation label. |
| - views::GridLayout* layout = new views::GridLayout(this); |
| - SetLayoutManager(layout); |
| - const int columnset_id = 0; |
| - views::ColumnSet* column_set = layout->AddColumnSet(columnset_id); |
| - column_set->AddColumn(views::GridLayout::FILL, views::GridLayout::LEADING, 1, |
| - views::GridLayout::USE_PREF, 0, 0); |
| - |
| - ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| - gfx::Font bold_font = rb.GetFont( |
| - ui::ResourceBundle::BaseFont).DeriveFont(0, gfx::Font::BOLD); |
| - warning_ = new views::Label(warning_text, bold_font); |
| - warning_->SetMultiLine(true); |
| - warning_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| - warning_->set_border(views::Border::CreateEmptyBorder(10, 10, 10, 10)); |
| - layout->StartRow(0, columnset_id); |
| - layout->AddView(warning_); |
| - |
| - explanation_ = new views::Label(explanation_text); |
| - explanation_->SetMultiLine(true); |
| - explanation_->SetHorizontalAlignment(views::Label::ALIGN_LEFT); |
| - explanation_->set_border(views::Border::CreateEmptyBorder(10, 10, 10, 10)); |
| - layout->StartRow(0, columnset_id); |
| - layout->AddView(explanation_); |
| - |
| - dialog_dimensions_ = views::Widget::GetLocalizedContentsSize( |
| - IDS_DOWNLOAD_IN_PROGRESS_WIDTH_CHARS, |
| - IDS_DOWNLOAD_IN_PROGRESS_MINIMUM_HEIGHT_LINES); |
| - const int height = |
| - warning_->GetHeightForWidth(dialog_dimensions_.width()) + |
| - explanation_->GetHeightForWidth(dialog_dimensions_.width()); |
| - dialog_dimensions_.set_height(std::max(height, |
| - dialog_dimensions_.height())); |
| + message_box_view_ = new views::MessageBoxView( |
| + views::MessageBoxView::NO_OPTIONS, explanation_text, string16()); |
| } |
| DownloadInProgressDialogView::~DownloadInProgressDialogView() {} |
| -gfx::Size DownloadInProgressDialogView::GetPreferredSize() { |
| - return dialog_dimensions_; |
| +int DownloadInProgressDialogView::GetDefaultDialogButton() const { |
| + return ui::DIALOG_BUTTON_CANCEL; |
| } |
| string16 DownloadInProgressDialogView::GetDialogButtonLabel( |
| @@ -115,10 +88,6 @@ string16 DownloadInProgressDialogView::GetDialogButtonLabel( |
| ok_button_text_ : cancel_button_text_; |
| } |
| -int DownloadInProgressDialogView::GetDefaultDialogButton() const { |
| - return ui::DIALOG_BUTTON_CANCEL; |
| -} |
| - |
| bool DownloadInProgressDialogView::Cancel() { |
| browser_->InProgressDownloadResponse(false); |
| return true; |
| @@ -134,9 +103,21 @@ ui::ModalType DownloadInProgressDialogView::GetModalType() const { |
| } |
| string16 DownloadInProgressDialogView::GetWindowTitle() const { |
| - return l10n_util::GetStringUTF16(IDS_PRODUCT_NAME); |
| + return title_text_; |
| +} |
| + |
| +void DownloadInProgressDialogView::DeleteDelegate() { |
| + delete this; |
| +} |
| + |
| +views::Widget* DownloadInProgressDialogView::GetWidget() { |
| + return message_box_view_->GetWidget(); |
| +} |
| + |
| +const views::Widget* DownloadInProgressDialogView::GetWidget() const { |
| + return message_box_view_->GetWidget(); |
| } |
| views::View* DownloadInProgressDialogView::GetContentsView() { |
| - return this; |
| + return message_box_view_; |
| } |