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

Side by Side 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/ui/views/translate/translate_bubble_view.h" 5 #include "chrome/browser/ui/views/translate/translate_bubble_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
290 WebContentsObserver(web_contents), 290 WebContentsObserver(web_contents),
291 before_translate_view_(NULL), 291 before_translate_view_(NULL),
292 translating_view_(NULL), 292 translating_view_(NULL),
293 after_translate_view_(NULL), 293 after_translate_view_(NULL),
294 error_view_(NULL), 294 error_view_(NULL),
295 advanced_view_(NULL), 295 advanced_view_(NULL),
296 denial_combobox_(NULL), 296 denial_combobox_(NULL),
297 source_language_combobox_(NULL), 297 source_language_combobox_(NULL),
298 target_language_combobox_(NULL), 298 target_language_combobox_(NULL),
299 always_translate_checkbox_(NULL), 299 always_translate_checkbox_(NULL),
300 advanced_cancel_button_(NULL),
301 advanced_done_button_(NULL),
300 model_(model.Pass()), 302 model_(model.Pass()),
301 is_in_incognito_window_( 303 is_in_incognito_window_(
302 web_contents ? 304 web_contents ?
303 web_contents->GetBrowserContext()->IsOffTheRecord() : false), 305 web_contents->GetBrowserContext()->IsOffTheRecord() : false),
304 browser_(browser), 306 browser_(browser),
305 translate_executed_(false) { 307 translate_executed_(false) {
306 if (model_->GetViewState() != 308 if (model_->GetViewState() !=
307 TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE) { 309 TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE) {
308 translate_executed_ = true; 310 translate_executed_ = true;
309 } 311 }
(...skipping 25 matching lines...) Expand all
335 TranslateBubbleView::ButtonID sender_id) { 337 TranslateBubbleView::ButtonID sender_id) {
336 switch (sender_id) { 338 switch (sender_id) {
337 case BUTTON_ID_TRANSLATE: { 339 case BUTTON_ID_TRANSLATE: {
338 translate_executed_ = true; 340 translate_executed_ = true;
339 model_->Translate(); 341 model_->Translate();
340 break; 342 break;
341 } 343 }
342 case BUTTON_ID_DONE: { 344 case BUTTON_ID_DONE: {
343 if (always_translate_checkbox_) 345 if (always_translate_checkbox_)
344 model_->SetAlwaysTranslate(always_translate_checkbox_->checked()); 346 model_->SetAlwaysTranslate(always_translate_checkbox_->checked());
345 translate_executed_ = true; 347 if (model_->IsPageTranslatedInCurrentLanguages()) {
346 model_->Translate(); 348 model_->GoBackFromAdvanced();
349 UpdateChildVisibilities();
350 SizeToContents();
351 } else {
352 translate_executed_ = true;
353 model_->Translate();
354 SwitchView(TranslateBubbleModel::VIEW_STATE_TRANSLATING);
355 }
347 break; 356 break;
348 } 357 }
349 case BUTTON_ID_CANCEL: { 358 case BUTTON_ID_CANCEL: {
350 model_->GoBackFromAdvanced(); 359 model_->GoBackFromAdvanced();
351 UpdateChildVisibilities(); 360 UpdateChildVisibilities();
352 SizeToContents(); 361 SizeToContents();
353 break; 362 break;
354 } 363 }
355 case BUTTON_ID_TRY_AGAIN: { 364 case BUTTON_ID_TRY_AGAIN: {
356 translate_executed_ = true; 365 translate_executed_ = true;
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 layout->SkipColumns(1); 721 layout->SkipColumns(1);
713 layout->AddView(always_translate_checkbox_); 722 layout->AddView(always_translate_checkbox_);
714 } 723 }
715 724
716 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 725 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
717 726
718 layout->StartRow(0, COLUMN_SET_ID_BUTTONS); 727 layout->StartRow(0, COLUMN_SET_ID_BUTTONS);
719 layout->AddView(CreateLink(this, 728 layout->AddView(CreateLink(this,
720 IDS_TRANSLATE_BUBBLE_LEARN_MORE, 729 IDS_TRANSLATE_BUBBLE_LEARN_MORE,
721 LINK_ID_LEARN_MORE)); 730 LINK_ID_LEARN_MORE));
722 views::LabelButton* cancel_button = CreateLabelButton( 731 advanced_cancel_button_ = CreateLabelButton(
723 this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL); 732 this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL);
724 layout->AddView(cancel_button); 733 layout->AddView(advanced_cancel_button_);
725 views::LabelButton* done_button = CreateLabelButton( 734 advanced_done_button_ = CreateLabelButton(
726 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE); 735 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE);
727 done_button->SetIsDefault(true); 736 advanced_done_button_->SetIsDefault(true);
728 layout->AddView(done_button); 737 layout->AddView(advanced_done_button_);
729 738
730 UpdateAdvancedView(); 739 UpdateAdvancedView();
731 740
732 return view; 741 return view;
733 } 742 }
734 743
735 void TranslateBubbleView::SwitchView( 744 void TranslateBubbleView::SwitchView(
736 TranslateBubbleModel::ViewState view_state) { 745 TranslateBubbleModel::ViewState view_state) {
737 if (model_->GetViewState() == view_state) 746 if (model_->GetViewState() == view_state)
738 return; 747 return;
739 748
740 model_->SetViewState(view_state); 749 model_->SetViewState(view_state);
741 UpdateChildVisibilities(); 750 UpdateChildVisibilities();
751 if (view_state == TranslateBubbleModel::VIEW_STATE_ADVANCED)
752 UpdateAdvancedView();
742 SizeToContents(); 753 SizeToContents();
743 } 754 }
744 755
745 void TranslateBubbleView::UpdateAdvancedView() { 756 void TranslateBubbleView::UpdateAdvancedView() {
746 DCHECK(source_language_combobox_); 757 DCHECK(source_language_combobox_);
747 DCHECK(target_language_combobox_); 758 DCHECK(target_language_combobox_);
759 DCHECK(advanced_done_button_);
748 760
749 string16 source_language_name = 761 string16 source_language_name =
750 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); 762 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
751 string16 target_language_name = 763 string16 target_language_name =
752 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex()); 764 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
753 765
754 // "Always translate" checkbox doesn't exist in an incognito window. 766 // "Always translate" checkbox doesn't exist in an incognito window.
755 if (always_translate_checkbox_) { 767 if (always_translate_checkbox_) {
756 always_translate_checkbox_->SetText( 768 always_translate_checkbox_->SetText(
757 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS)); 769 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS));
758 always_translate_checkbox_->SetChecked( 770 always_translate_checkbox_->SetChecked(
759 model_->ShouldAlwaysTranslate()); 771 model_->ShouldAlwaysTranslate());
760 } 772 }
773
774 string16 label;
775 if (model_->IsPageTranslatedInCurrentLanguages())
776 label = l10n_util::GetStringUTF16(IDS_DONE);
777 else
778 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT);
779 advanced_done_button_->SetText(label);
761 } 780 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698