Skip to content
Snippets Groups Projects
Commit 9dcb5966 authored by estade@chromium.org's avatar estade@chromium.org
Browse files

Download in progress dialog:

- Change hardcoded "Google Chrome" to product name.
- Implement for GTK.

BUG=21652

Review URL: http://codereview.chromium.org/212051

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@26891 0039d316-1c4b-4281-b951-d872f2087c98
parent 13cdde22
No related merge requests found
......@@ -1780,16 +1780,16 @@ each locale. aa1 -->
<!-- Remove in-progress downloads confirmation dialog -->
<message name="IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_WARNING" desc="Title of the dialog asking for user confirmation to close the browser when one download is in-progress.">
Do you want to exit Google Chrome with a download in progress?
Do you want to exit <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> with a download in progress?
</message>
<message name="IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_WARNING" desc="Title of the dialog asking for user confirmation to close the browser when multiple downloads are in-progress.">
Do you want to exit Google Chrome with <ph name="DOWNLOAD_COUNT">$1<ex>3</ex></ph> downloads in progress?
Do you want to exit <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> with <ph name="DOWNLOAD_COUNT">$2<ex>3</ex></ph> downloads in progress?
</message>
<message name="IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the browser when one download is in-progress.">
If you close Google Chrome now, this download will be canceled.
If you close <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> now, this download will be canceled.
</message>
<message name="IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION" desc="Explanation of the dialog asking for user confirmation to close the browser when multiple downloads are in-progress.">
If you close Google Chrome now, these downloads will be canceled.
If you close <ph name="PRODUCT_NAME">$1<ex>Google Chrome</ex></ph> now, these downloads will be canceled.
</message>
<message name="IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL" desc="Button text for OKing to close the browser when a single download is in-progress.">
Close and cancel download
......
......@@ -37,6 +37,7 @@
#include "chrome/common/pref_service.h"
#include "chrome/browser/profile_manager.h"
#include "chrome/common/temp_scaffolding_stubs.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
@interface AppController(PRIVATE)
......@@ -351,15 +352,17 @@
NSString* waitTitle = nil;
NSString* exitTitle = nil;
std::wstring product_name = l10n_util::GetString(IDS_PRODUCT_NAME);
// Set the dialog text based on whether or not there are multiple downloads.
if (downloadCount == 1) {
// Dialog text: warning and explanation.
warningText =
base::SysWideToNSString(l10n_util::GetString(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_WARNING));
base::SysWideToNSString(l10n_util::GetStringF(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_WARNING, product_name));
explanationText =
base::SysWideToNSString(l10n_util::GetString(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION));
base::SysWideToNSString(l10n_util::GetStringF(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION, product_name));
// Cancel download and exit button text.
exitTitle =
......@@ -374,10 +377,11 @@
// Dialog text: warning and explanation.
warningText =
base::SysWideToNSString(l10n_util::GetStringF(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_WARNING, downloadCount));
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_WARNING, product_name,
IntToWString(downloadCount)));
explanationText =
base::SysWideToNSString(l10n_util::GetString(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION));
base::SysWideToNSString(l10n_util::GetStringF(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION, product_name));
// Cancel downloads and exit button text.
exitTitle =
......
......@@ -43,6 +43,7 @@
#include "chrome/browser/gtk/browser_toolbar_gtk.h"
#include "chrome/browser/gtk/cairo_cached_surface.h"
#include "chrome/browser/gtk/clear_browsing_data_dialog_gtk.h"
#include "chrome/browser/gtk/download_in_progress_dialog_gtk.h"
#include "chrome/browser/gtk/download_shelf_gtk.h"
#include "chrome/browser/gtk/edit_search_engine_dialog.h"
#include "chrome/browser/gtk/extension_shelf_gtk.h"
......@@ -1140,8 +1141,7 @@ void BrowserWindowGtk::ShowAppMenu() {
}
void BrowserWindowGtk::ConfirmBrowserCloseWithPendingDownloads() {
NOTIMPLEMENTED();
browser_->InProgressDownloadResponse(false);
new DownloadInProgressDialogGtk(browser());
}
void BrowserWindowGtk::Observe(NotificationType type,
......
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/gtk/download_in_progress_dialog_gtk.h"
#include <gtk/gtk.h>
#include "app/l10n_util.h"
#include "base/string16.h"
#include "chrome/browser/browser.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/download/download_manager.h"
#include "chrome/browser/profile.h"
#include "chrome/common/gtk_util.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
DownloadInProgressDialogGtk::DownloadInProgressDialogGtk(Browser* browser)
: browser_(browser) {
int download_count = browser->profile()->GetDownloadManager()->
in_progress_count();
std::string warning_text;
std::string explanation_text;
std::string ok_button_text;
std::string cancel_button_text;
string16 product_name = l10n_util::GetStringUTF16(IDS_PRODUCT_NAME);
if (download_count == 1) {
warning_text =
l10n_util::GetStringFUTF8(IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_WARNING,
product_name);
explanation_text =
l10n_util::GetStringFUTF8(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION,
product_name);
ok_button_text = l10n_util::GetStringUTF8(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL);
cancel_button_text = l10n_util::GetStringUTF8(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_CANCEL_BUTTON_LABEL);
} else {
warning_text =
l10n_util::GetStringFUTF8(IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_WARNING,
product_name, IntToString16(download_count));
explanation_text =
l10n_util::GetStringFUTF8(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION, product_name);
ok_button_text = l10n_util::GetStringUTF8(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_OK_BUTTON_LABEL);
cancel_button_text = l10n_util::GetStringUTF8(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_CANCEL_BUTTON_LABEL);
}
GtkWidget* dialog = gtk_dialog_new_with_buttons(
UTF16ToUTF8(product_name).c_str(),
browser_->window()->GetNativeHandle(),
static_cast<GtkDialogFlags>(GTK_DIALOG_MODAL | GTK_DIALOG_NO_SEPARATOR),
NULL);
gtk_util::AddButtonToDialog(dialog,
cancel_button_text.c_str(),
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT);
gtk_util::AddButtonToDialog(dialog,
ok_button_text.c_str(),
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT);
GtkWidget* content_area = GTK_DIALOG(dialog)->vbox;
// There are two lines of text: the bold warning label and the text
// explanation label. Neither one wraps.
GtkWidget* warning_label = gtk_label_new(NULL);
gtk_label_set_markup(GTK_LABEL(warning_label),
(std::string("<b>") + warning_text + "</b>").c_str());
gtk_misc_set_alignment(GTK_MISC(warning_label), 0.0, 0.5);
gtk_container_add(GTK_CONTAINER(content_area), warning_label);
// Spacing line.
gtk_container_add(GTK_CONTAINER(content_area), gtk_label_new(NULL));
GtkWidget* explanation_label = gtk_label_new(explanation_text.c_str());
gtk_misc_set_alignment(GTK_MISC(explanation_label), 0.0, 0.5);
gtk_container_add(GTK_CONTAINER(content_area), explanation_label);
// Spacing line.
gtk_container_add(GTK_CONTAINER(content_area), gtk_label_new(NULL));
g_signal_connect(dialog, "response", G_CALLBACK(OnResponse), this);
gtk_widget_show_all(dialog);
}
void DownloadInProgressDialogGtk::OnResponse(
GtkWidget* widget,
int response,
DownloadInProgressDialogGtk* dialog) {
gtk_widget_destroy(widget);
dialog->browser_->InProgressDownloadResponse(response == GTK_RESPONSE_ACCEPT);
delete dialog;
}
// Copyright (c) 2009 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_BROWSER_GTK_DOWNLOAD_IN_PROGRESS_DIALOG_GTK_H_
#define CHROME_BROWSER_GTK_DOWNLOAD_IN_PROGRESS_DIALOG_GTK_H_
#include "base/basictypes.h"
class Browser;
typedef struct _GtkWidget GtkWidget;
class DownloadInProgressDialogGtk {
public:
explicit DownloadInProgressDialogGtk(Browser* browser);
private:
static void OnResponse(GtkWidget* widget, int response,
DownloadInProgressDialogGtk* dialog);
Browser* browser_;
DISALLOW_COPY_AND_ASSIGN(DownloadInProgressDialogGtk);
};
#endif // CHROME_BROWSER_GTK_DOWNLOAD_IN_PROGRESS_DIALOG_GTK_H_
......@@ -252,7 +252,8 @@ class DownloadInProgressConfirmDialogDelegate : public views::DialogDelegate,
public views::View {
public:
explicit DownloadInProgressConfirmDialogDelegate(Browser* browser)
: browser_(browser) {
: browser_(browser),
product_name_(l10n_util::GetString(IDS_PRODUCT_NAME)) {
int download_count = browser->profile()->GetDownloadManager()->
in_progress_count();
......@@ -260,9 +261,11 @@ class DownloadInProgressConfirmDialogDelegate : public views::DialogDelegate,
std::wstring explanation_text;
if (download_count == 1) {
warning_text =
l10n_util::GetString(IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_WARNING);
l10n_util::GetStringF(IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_WARNING,
product_name_);
explanation_text =
l10n_util::GetString(IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION);
l10n_util::GetStringF(IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_EXPLANATION,
product_name_);
ok_button_text_ = l10n_util::GetString(
IDS_SINGLE_DOWNLOAD_REMOVE_CONFIRM_OK_BUTTON_LABEL);
cancel_button_text_ = l10n_util::GetString(
......@@ -270,10 +273,10 @@ class DownloadInProgressConfirmDialogDelegate : public views::DialogDelegate,
} else {
warning_text =
l10n_util::GetStringF(IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_WARNING,
download_count);
product_name_, IntToString16(download_count));
explanation_text =
l10n_util::GetString(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION);
l10n_util::GetStringF(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_EXPLANATION, product_name_);
ok_button_text_ = l10n_util::GetString(
IDS_MULTIPLE_DOWNLOADS_REMOVE_CONFIRM_OK_BUTTON_LABEL);
cancel_button_text_ = l10n_util::GetString(
......@@ -350,7 +353,7 @@ class DownloadInProgressConfirmDialogDelegate : public views::DialogDelegate,
}
virtual std::wstring GetWindowTitle() const {
return l10n_util::GetString(IDS_PRODUCT_NAME);
return product_name_;
}
private:
......@@ -361,6 +364,8 @@ class DownloadInProgressConfirmDialogDelegate : public views::DialogDelegate,
std::wstring ok_button_text_;
std::wstring cancel_button_text_;
std::wstring product_name_;
DISALLOW_COPY_AND_ASSIGN(DownloadInProgressConfirmDialogDelegate);
};
......
......@@ -1294,6 +1294,8 @@
'browser/gtk/custom_button.cc',
'browser/gtk/custom_button.h',
'browser/gtk/dialogs_gtk.cc',
'browser/gtk/download_in_progress_dialog_gtk.cc',
'browser/gtk/download_in_progress_dialog_gtk.h',
'browser/gtk/download_item_gtk.cc',
'browser/gtk/download_item_gtk.h',
'browser/gtk/download_request_dialog_delegate_gtk.cc',
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment