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 |