| 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 views::Link* CreateLink(views::LinkListener* listener, | 50 views::Link* CreateLink(views::LinkListener* listener, |
| 51 int resource_id, | 51 int resource_id, |
| 52 int id) { | 52 int id) { |
| 53 views::Link* link = new views::Link( | 53 views::Link* link = new views::Link( |
| 54 l10n_util::GetStringUTF16(resource_id)); | 54 l10n_util::GetStringUTF16(resource_id)); |
| 55 link->set_listener(listener); | 55 link->set_listener(listener); |
| 56 link->set_id(id); | 56 link->set_id(id); |
| 57 return link; | 57 return link; |
| 58 } | 58 } |
| 59 | 59 |
| 60 void GetTranslateLanguages(content::WebContents* web_contents, | |
| 61 std::string* source, | |
| 62 std::string* target) { | |
| 63 DCHECK(source != NULL); | |
| 64 DCHECK(target != NULL); | |
| 65 | |
| 66 TranslateTabHelper* translate_tab_helper = | |
| 67 TranslateTabHelper::FromWebContents(web_contents); | |
| 68 *source = translate_tab_helper->GetLanguageState().original_language(); | |
| 69 *source = TranslateDownloadManager::GetLanguageCode(*source); | |
| 70 | |
| 71 Profile* profile = | |
| 72 Profile::FromBrowserContext(web_contents->GetBrowserContext()); | |
| 73 Profile* original_profile = profile->GetOriginalProfile(); | |
| 74 PrefService* prefs = original_profile->GetPrefs(); | |
| 75 if (!web_contents->GetBrowserContext()->IsOffTheRecord()) { | |
| 76 std::string auto_translate_language = | |
| 77 TranslateManager::GetAutoTargetLanguage(*source, prefs); | |
| 78 if (!auto_translate_language.empty()) { | |
| 79 *target = auto_translate_language; | |
| 80 return; | |
| 81 } | |
| 82 } | |
| 83 *target = TranslateManager::GetTargetLanguage(prefs); | |
| 84 } | |
| 85 | |
| 86 class TranslateDenialComboboxModel : public ui::ComboboxModel { | 60 class TranslateDenialComboboxModel : public ui::ComboboxModel { |
| 87 public: | 61 public: |
| 88 enum { | 62 enum { |
| 89 INDEX_NOPE = 0, | 63 INDEX_NOPE = 0, |
| 90 INDEX_NEVER_TRANSLATE_LANGUAGE = 2, | 64 INDEX_NEVER_TRANSLATE_LANGUAGE = 2, |
| 91 INDEX_NEVER_TRANSLATE_SITE = 4, | 65 INDEX_NEVER_TRANSLATE_SITE = 4, |
| 92 }; | 66 }; |
| 93 | 67 |
| 94 explicit TranslateDenialComboboxModel( | 68 explicit TranslateDenialComboboxModel( |
| 95 const base::string16& original_language_name) { | 69 const base::string16& original_language_name) { |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 155 TranslateBubbleModelImpl::TranslateStepToViewState(step); | 129 TranslateBubbleModelImpl::TranslateStepToViewState(step); |
| 156 translate_bubble_view_->SwitchView(state); | 130 translate_bubble_view_->SwitchView(state); |
| 157 } else { | 131 } else { |
| 158 translate_bubble_view_->SwitchToErrorView(error_type); | 132 translate_bubble_view_->SwitchToErrorView(error_type); |
| 159 } | 133 } |
| 160 return; | 134 return; |
| 161 } | 135 } |
| 162 | 136 |
| 163 std::string source_language; | 137 std::string source_language; |
| 164 std::string target_language; | 138 std::string target_language; |
| 165 GetTranslateLanguages(web_contents, &source_language, &target_language); | 139 TranslateManager::GetTranslateLanguages(web_contents, |
| 140 &source_language, &target_language); |
| 166 | 141 |
| 167 scoped_ptr<TranslateUIDelegate> ui_delegate( | 142 scoped_ptr<TranslateUIDelegate> ui_delegate( |
| 168 new TranslateUIDelegate(web_contents, source_language, target_language)); | 143 new TranslateUIDelegate(web_contents, source_language, target_language)); |
| 169 scoped_ptr<TranslateBubbleModel> model( | 144 scoped_ptr<TranslateBubbleModel> model( |
| 170 new TranslateBubbleModelImpl(step, ui_delegate.Pass())); | 145 new TranslateBubbleModelImpl(step, ui_delegate.Pass())); |
| 171 TranslateBubbleView* view = new TranslateBubbleView(anchor_view, | 146 TranslateBubbleView* view = new TranslateBubbleView(anchor_view, |
| 172 model.Pass(), | 147 model.Pass(), |
| 173 error_type, | 148 error_type, |
| 174 web_contents); | 149 web_contents); |
| 175 views::BubbleDelegateView::CreateBubble(view)->Show(); | 150 views::BubbleDelegateView::CreateBubble(view)->Show(); |
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 model_->ShouldAlwaysTranslate()); | 762 model_->ShouldAlwaysTranslate()); |
| 788 } | 763 } |
| 789 | 764 |
| 790 base::string16 label; | 765 base::string16 label; |
| 791 if (model_->IsPageTranslatedInCurrentLanguages()) | 766 if (model_->IsPageTranslatedInCurrentLanguages()) |
| 792 label = l10n_util::GetStringUTF16(IDS_DONE); | 767 label = l10n_util::GetStringUTF16(IDS_DONE); |
| 793 else | 768 else |
| 794 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); | 769 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); |
| 795 advanced_done_button_->SetText(label); | 770 advanced_done_button_->SetText(label); |
| 796 } | 771 } |
| OLD | NEW |