Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6817)

Unified Diff: chrome/browser/ui/views/translate/translate_bubble_view.cc

Issue 98643003: Translate new UX: Fix the visual and behavior of 'Done' button (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: sky's review Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/translate/translate_bubble_view.cc
diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.cc b/chrome/browser/ui/views/translate/translate_bubble_view.cc
index c0b4c52cde350609be1a01598421203618a3da87..940169671b9a5ed06a15f301e4cbb45bf7f19b5b 100644
--- a/chrome/browser/ui/views/translate/translate_bubble_view.cc
+++ b/chrome/browser/ui/views/translate/translate_bubble_view.cc
@@ -297,6 +297,8 @@ TranslateBubbleView::TranslateBubbleView(
source_language_combobox_(NULL),
target_language_combobox_(NULL),
always_translate_checkbox_(NULL),
+ advanced_cancel_button_(NULL),
+ advanced_done_button_(NULL),
model_(model.Pass()),
is_in_incognito_window_(
web_contents ?
@@ -342,8 +344,15 @@ void TranslateBubbleView::HandleButtonPressed(
case BUTTON_ID_DONE: {
if (always_translate_checkbox_)
model_->SetAlwaysTranslate(always_translate_checkbox_->checked());
- translate_executed_ = true;
- model_->Translate();
+ if (model_->IsPageTranslatedInCurrentLanguages()) {
+ model_->GoBackFromAdvanced();
+ UpdateChildVisibilities();
+ SizeToContents();
+ } else {
+ translate_executed_ = true;
+ model_->Translate();
+ SwitchView(TranslateBubbleModel::VIEW_STATE_TRANSLATING);
+ }
break;
}
case BUTTON_ID_CANCEL: {
@@ -719,13 +728,13 @@ views::View* TranslateBubbleView::CreateViewAdvanced() {
layout->AddView(CreateLink(this,
IDS_TRANSLATE_BUBBLE_LEARN_MORE,
LINK_ID_LEARN_MORE));
- views::LabelButton* cancel_button = CreateLabelButton(
+ advanced_cancel_button_ = CreateLabelButton(
this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL);
- layout->AddView(cancel_button);
- views::LabelButton* done_button = CreateLabelButton(
+ layout->AddView(advanced_cancel_button_);
+ advanced_done_button_ = CreateLabelButton(
this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE);
- done_button->SetIsDefault(true);
- layout->AddView(done_button);
+ advanced_done_button_->SetIsDefault(true);
+ layout->AddView(advanced_done_button_);
UpdateAdvancedView();
@@ -739,12 +748,15 @@ void TranslateBubbleView::SwitchView(
model_->SetViewState(view_state);
UpdateChildVisibilities();
+ if (view_state == TranslateBubbleModel::VIEW_STATE_ADVANCED)
+ UpdateAdvancedView();
SizeToContents();
}
void TranslateBubbleView::UpdateAdvancedView() {
DCHECK(source_language_combobox_);
DCHECK(target_language_combobox_);
+ DCHECK(advanced_done_button_);
string16 source_language_name =
model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
@@ -758,4 +770,11 @@ void TranslateBubbleView::UpdateAdvancedView() {
always_translate_checkbox_->SetChecked(
model_->ShouldAlwaysTranslate());
}
+
+ string16 label;
+ if (model_->IsPageTranslatedInCurrentLanguages())
+ label = l10n_util::GetStringUTF16(IDS_DONE);
+ else
+ label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT);
+ advanced_done_button_->SetText(label);
}

Powered by Google App Engine
This is Rietveld 408576698