| 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 |