| 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..9079800b82167b6ac75c426b37c70743666069a8 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,84 +29,60 @@ 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::DownloadClosePreventionType dialog_type =
|
| browser_->OkToCloseWithInProgressDownloads(&download_count);
|
|
|
| - // This dialog should have been created within the same thread invocation
|
| - // as the original test that lead to us, so it should always not be ok
|
| - // 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);
|
| - 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);
|
| - 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);
|
| + switch (dialog_type) {
|
| + case Browser::DOWNLOAD_CLOSE_BROWSER_SHUTDOWN:
|
| + 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_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL);
|
| + break;
|
| + case Browser::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_INCOGNITO_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL);
|
| + break;
|
| + default:
|
| + // This dialog should have been created within the same thread invocation
|
| + // as the original test that lead to us, so it should always not be ok
|
| + // to close.
|
| + NOTREACHED();
|
| }
|
| + 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 +91,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 +106,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_;
|
| }
|
|
|