OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |