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

Side by Side Diff: chrome/browser/ui/views/translate/translate_bubble_view.cc

Issue 1923143003: Implement the 2016Q2 Translate UI designe spec out in (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 2nd try - fix test breakages in TranslateUIDelegateTest Created 4 years, 7 months 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 <stddef.h> 7 #include <stddef.h>
8 #include <algorithm> 8 #include <algorithm>
9 #include <string> 9 #include <string>
10 #include <utility> 10 #include <utility>
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/i18n/string_compare.h" 13 #include "base/i18n/string_compare.h"
14 #include "base/memory/singleton.h" 14 #include "base/memory/singleton.h"
15 #include "base/metrics/histogram.h" 15 #include "base/metrics/histogram.h"
16 #include "base/strings/utf_string_conversions.h" 16 #include "base/strings/utf_string_conversions.h"
17 #include "chrome/browser/browser_process.h" 17 #include "chrome/browser/browser_process.h"
18 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
19 #include "chrome/browser/translate/chrome_translate_client.h" 19 #include "chrome/browser/translate/chrome_translate_client.h"
20 #include "chrome/browser/translate/translate_service.h" 20 #include "chrome/browser/translate/translate_service.h"
21 #include "chrome/browser/ui/chrome_pages.h" 21 #include "chrome/browser/ui/chrome_pages.h"
22 #include "chrome/browser/ui/translate/translate_bubble_model_impl.h" 22 #include "chrome/browser/ui/translate/translate_bubble_model_impl.h"
23 #include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h"
23 #include "chrome/common/url_constants.h" 24 #include "chrome/common/url_constants.h"
24 #include "chrome/grit/generated_resources.h" 25 #include "chrome/grit/generated_resources.h"
25 #include "components/prefs/pref_service.h" 26 #include "components/prefs/pref_service.h"
26 #include "components/translate/core/browser/translate_download_manager.h" 27 #include "components/translate/core/browser/translate_download_manager.h"
27 #include "components/translate/core/browser/translate_manager.h" 28 #include "components/translate/core/browser/translate_manager.h"
29 #include "components/translate/core/browser/translate_prefs.h"
28 #include "components/translate/core/browser/translate_ui_delegate.h" 30 #include "components/translate/core/browser/translate_ui_delegate.h"
29 #include "content/public/browser/web_contents.h" 31 #include "content/public/browser/web_contents.h"
30 #include "grit/components_strings.h" 32 #include "grit/components_strings.h"
33 #include "grit/ui_resources.h"
31 #include "ui/base/l10n/l10n_util.h" 34 #include "ui/base/l10n/l10n_util.h"
32 #include "ui/base/models/combobox_model.h" 35 #include "ui/base/models/combobox_model.h"
33 #include "ui/base/models/simple_combobox_model.h" 36 #include "ui/base/models/simple_combobox_model.h"
37 #include "ui/base/resource/resource_bundle.h"
38 #include "ui/views/bubble/bubble_frame_view.h"
39 #include "ui/views/controls/button/blue_button.h"
34 #include "ui/views/controls/button/checkbox.h" 40 #include "ui/views/controls/button/checkbox.h"
35 #include "ui/views/controls/button/label_button.h" 41 #include "ui/views/controls/button/label_button.h"
36 #include "ui/views/controls/combobox/combobox.h" 42 #include "ui/views/controls/combobox/combobox.h"
37 #include "ui/views/controls/label.h" 43 #include "ui/views/controls/label.h"
38 #include "ui/views/controls/link.h" 44 #include "ui/views/controls/link.h"
45 #include "ui/views/controls/styled_label.h"
39 #include "ui/views/layout/box_layout.h" 46 #include "ui/views/layout/box_layout.h"
40 #include "ui/views/layout/grid_layout.h" 47 #include "ui/views/layout/grid_layout.h"
41 #include "ui/views/layout/layout_constants.h" 48 #include "ui/views/layout/layout_constants.h"
42 #include "ui/views/widget/widget.h" 49 #include "ui/views/widget/widget.h"
43 50
44 namespace { 51 namespace {
45 52
53 const int kQuestionWidth = 200;
54 const char kTranslateBubbleUIEvent[] = "Translate.BubbleUiEvent";
55
56 views::LabelButton* CreateBlueButton(views::ButtonListener* listener,
57 const base::string16& label,
58 int id) {
59 views::LabelButton* button = new views::BlueButton(listener, label);
60 button->set_id(id);
61 return button;
62 }
63
46 views::LabelButton* CreateLabelButton(views::ButtonListener* listener, 64 views::LabelButton* CreateLabelButton(views::ButtonListener* listener,
47 const base::string16& label, 65 const base::string16& label,
48 int id) { 66 int id) {
49 views::LabelButton* button = new views::LabelButton(listener, label); 67 views::LabelButton* button = new views::LabelButton(listener, label);
50 button->set_id(id); 68 button->set_id(id);
51 button->SetStyle(views::Button::STYLE_BUTTON); 69 button->SetStyle(views::Button::STYLE_BUTTON);
52 return button; 70 return button;
53 } 71 }
54 72
55 views::Link* CreateLink(views::LinkListener* listener, 73 views::Link* CreateLink(views::LinkListener* listener,
56 int resource_id, 74 base::string16 text,
57 int id) { 75 int id) {
58 views::Link* link = new views::Link( 76 views::Link* link = new views::Link(text);
59 l10n_util::GetStringUTF16(resource_id));
60 link->set_listener(listener); 77 link->set_listener(listener);
61 link->set_id(id); 78 link->set_id(id);
62 return link; 79 return link;
63 } 80 }
81 views::Link* CreateLink(views::LinkListener* listener,
82 int resource_id,
83 int id) {
84 return CreateLink(listener,
85 l10n_util::GetStringUTF16(resource_id),
86 id);
87 }
88
89 void AddIconToLayout(views::GridLayout* layout) {
90 views::ImageView* icon = new views::ImageView();
91 ui::ResourceBundle& bundle = ui::ResourceBundle::GetSharedInstance();
92 icon->SetImage(
93 bundle.GetImageNamed(IDR_TRANSLATE_ICON_V2).ToImageSkia());
94 layout->AddView(icon);
95 }
64 96
65 } // namespace 97 } // namespace
66 98
67 // static 99 // static
68 TranslateBubbleView* TranslateBubbleView::translate_bubble_view_ = NULL; 100 TranslateBubbleView* TranslateBubbleView::translate_bubble_view_ = NULL;
69 101
70 TranslateBubbleView::~TranslateBubbleView() { 102 TranslateBubbleView::~TranslateBubbleView() {
71 // A child view could refer to a model which is owned by this class when 103 // A child view could refer to a model which is owned by this class when
72 // the child view is destructed. For example, |source_language_combobx_model_| 104 // the child view is destructed. For example, |source_language_combobx_model_|
73 // is referred by Combobox's destructor. Before destroying the models, 105 // is referred by Combobox's destructor. Before destroying the models,
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 AddChildView(advanced_view_); 185 AddChildView(advanced_view_);
154 186
155 AddAccelerator(ui::Accelerator(ui::VKEY_RETURN, ui::EF_NONE)); 187 AddAccelerator(ui::Accelerator(ui::VKEY_RETURN, ui::EF_NONE));
156 188
157 UpdateChildVisibilities(); 189 UpdateChildVisibilities();
158 190
159 if (model_->GetViewState() == TranslateBubbleModel::VIEW_STATE_ERROR) 191 if (model_->GetViewState() == TranslateBubbleModel::VIEW_STATE_ERROR)
160 model_->ShowError(error_type_); 192 model_->ShowError(error_type_);
161 } 193 }
162 194
195 void TranslateBubbleView::ReportUiAction(int action) {
196 UMA_HISTOGRAM_ENUMERATION(kTranslateBubbleUIEvent,
197 action,
198 TRANSLATE_BUBBLE_UI_EVENT_MAX);
199 }
200
201 bool TranslateBubbleView::ShouldShowCloseButton() const {
202 return use_2016_q2_ui_;
203 }
204
163 void TranslateBubbleView::ButtonPressed(views::Button* sender, 205 void TranslateBubbleView::ButtonPressed(views::Button* sender,
164 const ui::Event& event) { 206 const ui::Event& event) {
165 HandleButtonPressed(static_cast<ButtonID>(sender->id())); 207 HandleButtonPressed(static_cast<ButtonID>(sender->id()));
166 } 208 }
167 209
168 void TranslateBubbleView::WindowClosing() { 210 void TranslateBubbleView::WindowClosing() {
211 if (GetBubbleFrameView()->close_button_clicked()) {
212 model_->DeclineTranslation();
213 ReportUiAction(CLOSE_BUTTON_CLICKED);
214 }
169 // The operations for |model_| are valid only when a WebContents is alive. 215 // The operations for |model_| are valid only when a WebContents is alive.
170 // TODO(hajimehoshi): TranslateBubbleViewModel(Impl) should not hold a 216 // TODO(hajimehoshi): TranslateBubbleViewModel(Impl) should not hold a
171 // WebContents as a member variable because the WebContents might be destroyed 217 // WebContents as a member variable because the WebContents might be destroyed
172 // while the TranslateBubbleViewModel(Impl) is still alive. Instead, 218 // while the TranslateBubbleViewModel(Impl) is still alive. Instead,
173 // TranslateBubbleViewModel should take a reference of a WebContents at each 219 // TranslateBubbleViewModel should take a reference of a WebContents at each
174 // method. (crbug/320497) 220 // method. (crbug/320497)
175 if (web_contents()) 221 if (web_contents())
176 model_->OnBubbleClosing(); 222 model_->OnBubbleClosing();
177 223
178 // We have to reset |translate_bubble_view_| here, not in our destructor, 224 // We have to reset |translate_bubble_view_| here, not in our destructor,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 271 }
226 272
227 void TranslateBubbleView::OnPerformAction(views::Combobox* combobox) { 273 void TranslateBubbleView::OnPerformAction(views::Combobox* combobox) {
228 HandleComboboxPerformAction(static_cast<ComboboxID>(combobox->id())); 274 HandleComboboxPerformAction(static_cast<ComboboxID>(combobox->id()));
229 } 275 }
230 276
231 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) { 277 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) {
232 HandleLinkClicked(static_cast<LinkID>(source->id())); 278 HandleLinkClicked(static_cast<LinkID>(source->id()));
233 } 279 }
234 280
281 void TranslateBubbleView::StyledLabelLinkClicked(views::StyledLabel* label,
282 const gfx::Range& range,
283 int event_flags) {
284 SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
285 ReportUiAction(ADVANCED_LINK_CLICKED);
286 }
287
235 void TranslateBubbleView::WebContentsDestroyed() { 288 void TranslateBubbleView::WebContentsDestroyed() {
236 GetWidget()->CloseNow(); 289 GetWidget()->CloseNow();
237 } 290 }
238 291
239 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const { 292 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const {
240 return model_->GetViewState(); 293 return model_->GetViewState();
241 } 294 }
242 295
243 TranslateBubbleView::TranslateBubbleView( 296 TranslateBubbleView::TranslateBubbleView(
244 views::View* anchor_view, 297 views::View* anchor_view,
245 std::unique_ptr<TranslateBubbleModel> model, 298 std::unique_ptr<TranslateBubbleModel> model,
246 translate::TranslateErrors::Type error_type, 299 translate::TranslateErrors::Type error_type,
247 content::WebContents* web_contents) 300 content::WebContents* web_contents)
248 : LocationBarBubbleDelegateView(anchor_view, web_contents), 301 : LocationBarBubbleDelegateView(anchor_view, web_contents),
249 WebContentsObserver(web_contents), 302 WebContentsObserver(web_contents),
250 before_translate_view_(NULL), 303 before_translate_view_(NULL),
251 translating_view_(NULL), 304 translating_view_(NULL),
252 after_translate_view_(NULL), 305 after_translate_view_(NULL),
253 error_view_(NULL), 306 error_view_(NULL),
254 advanced_view_(NULL), 307 advanced_view_(NULL),
255 denial_combobox_(NULL), 308 denial_combobox_(NULL),
256 source_language_combobox_(NULL), 309 source_language_combobox_(NULL),
257 target_language_combobox_(NULL), 310 target_language_combobox_(NULL),
258 always_translate_checkbox_(NULL), 311 always_translate_checkbox_(NULL),
259 advanced_cancel_button_(NULL), 312 advanced_cancel_button_(NULL),
260 advanced_done_button_(NULL), 313 advanced_done_button_(NULL),
261 model_(std::move(model)), 314 model_(std::move(model)),
262 error_type_(error_type), 315 error_type_(error_type),
263 is_in_incognito_window_( 316 is_in_incognito_window_(
264 web_contents && web_contents->GetBrowserContext()->IsOffTheRecord()) { 317 web_contents && web_contents->GetBrowserContext()->IsOffTheRecord()),
318 use_2016_q2_ui_(base::FeatureList::IsEnabled(
319 translate::kTranslateUI2016Q2)) {
265 translate_bubble_view_ = this; 320 translate_bubble_view_ = this;
266 } 321 }
267 322
268 views::View* TranslateBubbleView::GetCurrentView() const { 323 views::View* TranslateBubbleView::GetCurrentView() const {
269 switch (model_->GetViewState()) { 324 switch (model_->GetViewState()) {
270 case TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE: 325 case TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE:
271 return before_translate_view_; 326 return before_translate_view_;
272 case TranslateBubbleModel::VIEW_STATE_TRANSLATING: 327 case TranslateBubbleModel::VIEW_STATE_TRANSLATING:
273 return translating_view_; 328 return translating_view_;
274 case TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE: 329 case TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE:
275 return after_translate_view_; 330 return after_translate_view_;
276 case TranslateBubbleModel::VIEW_STATE_ERROR: 331 case TranslateBubbleModel::VIEW_STATE_ERROR:
277 return error_view_; 332 return error_view_;
278 case TranslateBubbleModel::VIEW_STATE_ADVANCED: 333 case TranslateBubbleModel::VIEW_STATE_ADVANCED:
279 return advanced_view_; 334 return advanced_view_;
280 } 335 }
281 NOTREACHED(); 336 NOTREACHED();
282 return NULL; 337 return NULL;
283 } 338 }
284 339
285 void TranslateBubbleView::HandleButtonPressed( 340 void TranslateBubbleView::HandleButtonPressed(
286 TranslateBubbleView::ButtonID sender_id) { 341 TranslateBubbleView::ButtonID sender_id) {
287 switch (sender_id) { 342 switch (sender_id) {
288 case BUTTON_ID_TRANSLATE: { 343 case BUTTON_ID_TRANSLATE: {
289 model_->Translate(); 344 model_->Translate();
345 ReportUiAction(TRANSLATE_BUTTON_CLICKED);
290 break; 346 break;
291 } 347 }
292 case BUTTON_ID_DONE: { 348 case BUTTON_ID_DONE: {
293 if (always_translate_checkbox_) 349 if (always_translate_checkbox_)
294 model_->SetAlwaysTranslate(always_translate_checkbox_->checked()); 350 model_->SetAlwaysTranslate(always_translate_checkbox_->checked());
295 if (model_->IsPageTranslatedInCurrentLanguages()) { 351 if (model_->IsPageTranslatedInCurrentLanguages()) {
296 model_->GoBackFromAdvanced(); 352 model_->GoBackFromAdvanced();
297 UpdateChildVisibilities(); 353 UpdateChildVisibilities();
298 SizeToContents(); 354 SizeToContents();
299 } else { 355 } else {
300 model_->Translate(); 356 model_->Translate();
301 SwitchView(TranslateBubbleModel::VIEW_STATE_TRANSLATING); 357 SwitchView(TranslateBubbleModel::VIEW_STATE_TRANSLATING);
302 } 358 }
359 ReportUiAction(DONE_BUTTON_CLICKED);
303 break; 360 break;
304 } 361 }
305 case BUTTON_ID_CANCEL: { 362 case BUTTON_ID_CANCEL: {
306 model_->GoBackFromAdvanced(); 363 model_->GoBackFromAdvanced();
307 UpdateChildVisibilities(); 364 UpdateChildVisibilities();
308 SizeToContents(); 365 SizeToContents();
366 ReportUiAction(CANCEL_BUTTON_CLICKED);
309 break; 367 break;
310 } 368 }
311 case BUTTON_ID_TRY_AGAIN: { 369 case BUTTON_ID_TRY_AGAIN: {
312 model_->Translate(); 370 model_->Translate();
371 ReportUiAction(TRY_AGAIN_BUTTON_CLICKED);
313 break; 372 break;
314 } 373 }
315 case BUTTON_ID_SHOW_ORIGINAL: { 374 case BUTTON_ID_SHOW_ORIGINAL: {
316 model_->RevertTranslation(); 375 model_->RevertTranslation();
317 GetWidget()->Close(); 376 GetWidget()->Close();
377 ReportUiAction(SHOW_ORIGINAL_BUTTON_CLICKED);
318 break; 378 break;
319 } 379 }
320 case BUTTON_ID_ALWAYS_TRANSLATE: { 380 case BUTTON_ID_ALWAYS_TRANSLATE: {
321 // Do nothing. The state of the checkbox affects only when the 'Done' 381 // Do nothing. The state of the checkbox affects only when the 'Done'
322 // button is pressed. 382 // button is pressed.
383 ReportUiAction((always_translate_checkbox_->checked() ?
384 ALWAYS_TRANSLATE_CHECKED :
385 ALWAYS_TRANSLATE_UNCHECKED));
323 break; 386 break;
324 } 387 }
325 } 388 }
326 } 389 }
327 390
328 void TranslateBubbleView::HandleLinkClicked( 391 void TranslateBubbleView::HandleLinkClicked(
329 TranslateBubbleView::LinkID sender_id) { 392 TranslateBubbleView::LinkID sender_id) {
330 switch (sender_id) { 393 switch (sender_id) {
331 case LINK_ID_ADVANCED: { 394 case LINK_ID_ADVANCED: {
332 SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 395 SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
396 ReportUiAction(ADVANCED_LINK_CLICKED);
333 break; 397 break;
334 } 398 }
335 case LINK_ID_LANGUAGE_SETTINGS: { 399 case LINK_ID_LANGUAGE_SETTINGS: {
336 GURL url = chrome::GetSettingsUrl(chrome::kLanguageOptionsSubPage); 400 GURL url = chrome::GetSettingsUrl(chrome::kLanguageOptionsSubPage);
337 web_contents()->OpenURL(content::OpenURLParams( 401 web_contents()->OpenURL(content::OpenURLParams(
338 url, 402 url,
339 content::Referrer(), 403 content::Referrer(),
340 NEW_FOREGROUND_TAB, 404 NEW_FOREGROUND_TAB,
341 ui::PAGE_TRANSITION_LINK, 405 ui::PAGE_TRANSITION_LINK,
342 false)); 406 false));
407 ReportUiAction(SETTING_LINK_CLICKED);
343 break; 408 break;
344 } 409 }
345 } 410 }
346 } 411 }
347 412
348 void TranslateBubbleView::HandleComboboxPerformAction( 413 void TranslateBubbleView::HandleComboboxPerformAction(
349 TranslateBubbleView::ComboboxID sender_id) { 414 TranslateBubbleView::ComboboxID sender_id) {
350 switch (sender_id) { 415 switch (sender_id) {
351 case COMBOBOX_ID_DENIAL: { 416 case COMBOBOX_ID_DENIAL: {
417 DenialComboboxIndex index = static_cast<DenialComboboxIndex>(
418 denial_combobox_->selected_index());
419 if (use_2016_q2_ui_ && index == DenialComboboxIndex::DONT_TRANSLATE) {
420 // Do not noop on 2016q2 UI.
421 return;
422 }
352 model_->DeclineTranslation(); 423 model_->DeclineTranslation();
353 DenialComboboxIndex index =
354 static_cast<DenialComboboxIndex>(denial_combobox_->selected_index());
355 switch (index) { 424 switch (index) {
356 case DenialComboboxIndex::DONT_TRANSLATE: 425 case DenialComboboxIndex::DONT_TRANSLATE:
426 ReportUiAction(NOPE_MENU_CLICKED);
357 break; 427 break;
358 case DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE: 428 case DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE:
359 model_->SetNeverTranslateLanguage(true); 429 model_->SetNeverTranslateLanguage(true);
430 ReportUiAction(NEVER_TRANSLATE_LANGUAGE_MENU_CLICKED);
360 break; 431 break;
361 case DenialComboboxIndex::NEVER_TRANSLATE_SITE: 432 case DenialComboboxIndex::NEVER_TRANSLATE_SITE:
362 model_->SetNeverTranslateSite(true); 433 model_->SetNeverTranslateSite(true);
434 ReportUiAction(NEVER_TRANSLATE_SITE_MENU_CLICKED);
363 break; 435 break;
364 default: 436 default:
365 NOTREACHED(); 437 NOTREACHED();
366 break; 438 break;
367 } 439 }
368 GetWidget()->Close(); 440 GetWidget()->Close();
369 break; 441 break;
370 } 442 }
371 case COMBOBOX_ID_SOURCE_LANGUAGE: { 443 case COMBOBOX_ID_SOURCE_LANGUAGE: {
372 if (model_->GetOriginalLanguageIndex() == 444 if (model_->GetOriginalLanguageIndex() ==
373 source_language_combobox_->selected_index()) { 445 source_language_combobox_->selected_index()) {
374 break; 446 break;
375 } 447 }
376 model_->UpdateOriginalLanguageIndex( 448 model_->UpdateOriginalLanguageIndex(
377 source_language_combobox_->selected_index()); 449 source_language_combobox_->selected_index());
378 UpdateAdvancedView(); 450 UpdateAdvancedView();
451 ReportUiAction(SOURCE_LANGUAGE_MENU_CLICKED);
379 break; 452 break;
380 } 453 }
381 case COMBOBOX_ID_TARGET_LANGUAGE: { 454 case COMBOBOX_ID_TARGET_LANGUAGE: {
382 if (model_->GetTargetLanguageIndex() == 455 if (model_->GetTargetLanguageIndex() ==
383 target_language_combobox_->selected_index()) { 456 target_language_combobox_->selected_index()) {
384 break; 457 break;
385 } 458 }
386 model_->UpdateTargetLanguageIndex( 459 model_->UpdateTargetLanguageIndex(
387 target_language_combobox_->selected_index()); 460 target_language_combobox_->selected_index());
388 UpdateAdvancedView(); 461 UpdateAdvancedView();
462 ReportUiAction(TARGET_LANGUAGE_MENU_CLICKED);
389 break; 463 break;
390 } 464 }
391 } 465 }
392 } 466 }
393 467
394 void TranslateBubbleView::UpdateChildVisibilities() { 468 void TranslateBubbleView::UpdateChildVisibilities() {
395 for (int i = 0; i < child_count(); i++) { 469 for (int i = 0; i < child_count(); i++) {
396 views::View* view = child_at(i); 470 views::View* view = child_at(i);
397 view->SetVisible(view == GetCurrentView()); 471 view->SetVisible(view == GetCurrentView());
398 } 472 }
399 } 473 }
400 474
401 views::View* TranslateBubbleView::CreateViewBeforeTranslate() { 475 views::View* TranslateBubbleView::CreateViewBeforeTranslate() {
402 views::Label* message_label = new views::Label(
403 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE));
404
405 base::string16 original_language_name = 476 base::string16 original_language_name =
406 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); 477 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
407 478
408 std::vector<base::string16> items( 479 std::vector<base::string16> items(
409 static_cast<size_t>(DenialComboboxIndex::MENU_SIZE)); 480 static_cast<size_t>(DenialComboboxIndex::MENU_SIZE));
410 items[static_cast<size_t>(DenialComboboxIndex::DONT_TRANSLATE)] = 481 if (use_2016_q2_ui_) {
411 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_DENY); 482 items[static_cast<size_t>(DenialComboboxIndex::DONT_TRANSLATE)] =
483 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ADVANCED);
484 } else {
485 items[static_cast<size_t>(DenialComboboxIndex::DONT_TRANSLATE)] =
486 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_DENY);
487 }
412 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE)] = 488 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE)] =
413 l10n_util::GetStringFUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG, 489 l10n_util::GetStringFUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG,
414 original_language_name); 490 original_language_name);
415 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_SITE)] = 491 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_SITE)] =
416 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE); 492 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE);
417 493
494
418 denial_combobox_model_.reset(new ui::SimpleComboboxModel(items)); 495 denial_combobox_model_.reset(new ui::SimpleComboboxModel(items));
419 denial_combobox_ = new views::Combobox(denial_combobox_model_.get()); 496 denial_combobox_ = new views::Combobox(denial_combobox_model_.get());
497
420 denial_combobox_->set_id(COMBOBOX_ID_DENIAL); 498 denial_combobox_->set_id(COMBOBOX_ID_DENIAL);
421 denial_combobox_->set_listener(this); 499 denial_combobox_->set_listener(this);
422 denial_combobox_->SetStyle(views::Combobox::STYLE_ACTION); 500 denial_combobox_->SetStyle(views::Combobox::STYLE_ACTION);
423 501
502 // In an incognito window, "Always translate" checkbox shouldn't be shown.
503 if (use_2016_q2_ui_ && !is_in_incognito_window_) {
504 always_translate_checkbox_ = new views::Checkbox(base::string16());
505 always_translate_checkbox_->SetChecked(model_->GetAlwaysTranslateChecked());
506 always_translate_checkbox_->set_id(BUTTON_ID_ALWAYS_TRANSLATE);
507 always_translate_checkbox_->SetText(
508 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS));
509 always_translate_checkbox_->set_listener(this);
510 }
511
424 views::View* view = new views::View(); 512 views::View* view = new views::View();
425 views::GridLayout* layout = new views::GridLayout(view); 513 views::GridLayout* layout = new views::GridLayout(view);
426 view->SetLayoutManager(layout); 514 view->SetLayoutManager(layout);
427 515
428 using views::GridLayout; 516 using views::GridLayout;
429 517
430 enum { 518 enum {
431 COLUMN_SET_ID_MESSAGE, 519 COLUMN_SET_ID_MESSAGE,
432 COLUMN_SET_ID_CONTENT, 520 COLUMN_SET_ID_CONTENT,
433 }; 521 };
434 522
435 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 523 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
436 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 524 if (use_2016_q2_ui_) {
437 0, GridLayout::USE_PREF, 0, 0); 525 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
438 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 526 0, GridLayout::USE_PREF, 0, 0);
527 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
528 } else {
529 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
530 0, GridLayout::USE_PREF, 0, 0);
531 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
532 }
439 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 533 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
440 0, GridLayout::USE_PREF, 0, 0); 534 0, GridLayout::USE_PREF, 0, 0);
441 cs->AddPaddingColumn(1, 0); 535 cs->AddPaddingColumn(1, 0);
442 536
443 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 537 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
444 cs->AddPaddingColumn(1, 0); 538 cs->AddPaddingColumn(1, 0);
445 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 539 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
446 0, GridLayout::USE_PREF, 0, 0); 540 0, GridLayout::USE_PREF, 0, 0);
447 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 541 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
448 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 542 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
449 0, GridLayout::USE_PREF, 0, 0); 543 0, GridLayout::USE_PREF, 0, 0);
450 544
451 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 545 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
452 layout->AddView(message_label); 546 if (use_2016_q2_ui_) {
453 layout->AddView(CreateLink(this, 547 AddIconToLayout(layout);
454 IDS_TRANSLATE_BUBBLE_ADVANCED,
455 LINK_ID_ADVANCED));
456 548
549 base::string16 target_language_name =
550 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
551 std::vector<size_t> offsets;
552 auto styled_label = new views::StyledLabel(
553 l10n_util::GetStringFUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE2,
554 original_language_name,
555 target_language_name,
556 &offsets),
557 this);
558 auto style_info = views::StyledLabel::RangeStyleInfo::CreateForLink();
559 styled_label->AddStyleRange(
560 gfx::Range(static_cast<uint32_t>(offsets[0]),
561 static_cast<uint32_t>(offsets[0] +
562 original_language_name.length())),
563 style_info);
564 styled_label->AddStyleRange(
565 gfx::Range(static_cast<uint32_t>(offsets[1]),
566 static_cast<uint32_t>(offsets[1] +
567 target_language_name.length())),
568 style_info);
569 styled_label->SetBounds(styled_label->x(),
570 styled_label->y(),
571 kQuestionWidth,
572 styled_label->GetHeightForWidth(kQuestionWidth));
573
574 layout->AddView(styled_label);
575 } else {
576 auto message_label = new views::Label(
577 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE));
578 layout->AddView(message_label);
579 auto link = CreateLink(this,
580 IDS_TRANSLATE_BUBBLE_ADVANCED,
581 LINK_ID_ADVANCED);
582 layout->AddView(link);
583 }
584
585
586 if (use_2016_q2_ui_ && !is_in_incognito_window_) {
587 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
588 layout->SkipColumns(1);
589 layout->AddView(always_translate_checkbox_);
590 }
457 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 591 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
458 592
459 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 593 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
460 views::LabelButton* accept_button = CreateLabelButton( 594 views::LabelButton* accept_button = use_2016_q2_ui_ ?
461 this, 595 CreateBlueButton(
462 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT), 596 this,
463 BUTTON_ID_TRANSLATE); 597 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT),
598 BUTTON_ID_TRANSLATE) :
599 CreateLabelButton(
600 this,
601 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT),
602 BUTTON_ID_TRANSLATE);
464 layout->AddView(accept_button); 603 layout->AddView(accept_button);
465 accept_button->SetIsDefault(true); 604 accept_button->SetIsDefault(true);
466 layout->AddView(denial_combobox_); 605 layout->AddView(denial_combobox_);
467 606
468 return view; 607 return view;
469 } 608 }
470 609
471 views::View* TranslateBubbleView::CreateViewTranslating() { 610 views::View* TranslateBubbleView::CreateViewTranslating() {
472 base::string16 target_language_name = 611 base::string16 target_language_name =
473 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex()); 612 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
474 views::Label* label = new views::Label( 613 views::Label* label = new views::Label(
475 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_TRANSLATING)); 614 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_TRANSLATING));
476 615
477 views::View* view = new views::View(); 616 views::View* view = new views::View();
478 views::GridLayout* layout = new views::GridLayout(view); 617 views::GridLayout* layout = new views::GridLayout(view);
479 view->SetLayoutManager(layout); 618 view->SetLayoutManager(layout);
480 619
481 using views::GridLayout; 620 using views::GridLayout;
482 621
483 enum { 622 enum {
484 COLUMN_SET_ID_MESSAGE, 623 COLUMN_SET_ID_MESSAGE,
485 COLUMN_SET_ID_CONTENT, 624 COLUMN_SET_ID_CONTENT,
486 }; 625 };
487 626
488 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 627 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
628 if (use_2016_q2_ui_) {
629 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
630 0, views::GridLayout::USE_PREF, 0, 0);
631 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
632 }
489 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 633 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
490 0, views::GridLayout::USE_PREF, 0, 0); 634 0, GridLayout::USE_PREF, 0, 0);
491 cs->AddPaddingColumn(1, 0); 635 cs->AddPaddingColumn(1, 0);
492 636
493 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 637 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
494 cs->AddPaddingColumn(1, 0); 638 cs->AddPaddingColumn(1, 0);
495 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 639 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
496 0, GridLayout::USE_PREF, 0, 0); 640 0, GridLayout::USE_PREF, 0, 0);
497 641
498 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 642 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
643 if (use_2016_q2_ui_) {
644 AddIconToLayout(layout);
645 }
499 layout->AddView(label); 646 layout->AddView(label);
500 647
501 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 648 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
502 649
503 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 650 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
504 views::LabelButton* revert_button = CreateLabelButton( 651 views::LabelButton* revert_button = CreateLabelButton(
505 this, 652 this,
506 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_REVERT), 653 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_REVERT),
507 BUTTON_ID_SHOW_ORIGINAL); 654 BUTTON_ID_SHOW_ORIGINAL);
508 revert_button->SetEnabled(false); 655 revert_button->SetEnabled(false);
(...skipping 11 matching lines...) Expand all
520 view->SetLayoutManager(layout); 667 view->SetLayoutManager(layout);
521 668
522 using views::GridLayout; 669 using views::GridLayout;
523 670
524 enum { 671 enum {
525 COLUMN_SET_ID_MESSAGE, 672 COLUMN_SET_ID_MESSAGE,
526 COLUMN_SET_ID_CONTENT, 673 COLUMN_SET_ID_CONTENT,
527 }; 674 };
528 675
529 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 676 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
677 if (use_2016_q2_ui_) {
678 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
679 0, views::GridLayout::USE_PREF, 0, 0);
680 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
681 }
530 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 682 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
531 0, views::GridLayout::USE_PREF, 0, 0); 683 0, views::GridLayout::USE_PREF, 0, 0);
532 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 684 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
533 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 685 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
534 0, views::GridLayout::USE_PREF, 0, 0); 686 0, GridLayout::USE_PREF, 0, 0);
535 cs->AddPaddingColumn(1, 0); 687 cs->AddPaddingColumn(1, 0);
536 688
537 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 689 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
538 cs->AddPaddingColumn(1, 0); 690 cs->AddPaddingColumn(1, 0);
539 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 691 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
540 0, GridLayout::USE_PREF, 0, 0); 692 0, GridLayout::USE_PREF, 0, 0);
541 693
542 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 694 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
695 if (use_2016_q2_ui_) {
696 AddIconToLayout(layout);
697 }
543 layout->AddView(label); 698 layout->AddView(label);
544 layout->AddView(CreateLink(this, 699 layout->AddView(CreateLink(this,
545 IDS_TRANSLATE_BUBBLE_ADVANCED, 700 IDS_TRANSLATE_BUBBLE_ADVANCED,
546 LINK_ID_ADVANCED)); 701 LINK_ID_ADVANCED));
547 702
548 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 703 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
549 704
550 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 705 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
551 layout->AddView(CreateLabelButton( 706 layout->AddView(CreateLabelButton(
552 this, 707 this,
(...skipping 12 matching lines...) Expand all
565 view->SetLayoutManager(layout); 720 view->SetLayoutManager(layout);
566 721
567 using views::GridLayout; 722 using views::GridLayout;
568 723
569 enum { 724 enum {
570 COLUMN_SET_ID_MESSAGE, 725 COLUMN_SET_ID_MESSAGE,
571 COLUMN_SET_ID_CONTENT, 726 COLUMN_SET_ID_CONTENT,
572 }; 727 };
573 728
574 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 729 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
730 if (use_2016_q2_ui_) {
731 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
732 0, GridLayout::USE_PREF, 0, 0);
733 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
734 }
575 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 735 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
576 0, GridLayout::USE_PREF, 0, 0); 736 0, GridLayout::USE_PREF, 0, 0);
577 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 737 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
578 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 738 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
579 0, GridLayout::USE_PREF, 0, 0); 739 0, GridLayout::USE_PREF, 0, 0);
580 cs->AddPaddingColumn(1, 0); 740 cs->AddPaddingColumn(1, 0);
581 741
582 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 742 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
583 cs->AddPaddingColumn(1, 0); 743 cs->AddPaddingColumn(1, 0);
584 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 744 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
585 0, GridLayout::USE_PREF, 0, 0); 745 0, GridLayout::USE_PREF, 0, 0);
586 746
587 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 747 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
748 if (use_2016_q2_ui_) {
749 AddIconToLayout(layout);
750 }
588 layout->AddView(label); 751 layout->AddView(label);
589 layout->AddView(CreateLink(this, 752 layout->AddView(CreateLink(this,
590 IDS_TRANSLATE_BUBBLE_ADVANCED, 753 IDS_TRANSLATE_BUBBLE_ADVANCED,
591 LINK_ID_ADVANCED)); 754 LINK_ID_ADVANCED));
592 755
593 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 756 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
594 757
595 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 758 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
596 layout->AddView(CreateLabelButton( 759 layout->AddView(CreateLabelButton(
597 this, 760 this,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 layout->SkipColumns(1); 843 layout->SkipColumns(1);
681 layout->AddView(always_translate_checkbox_); 844 layout->AddView(always_translate_checkbox_);
682 } 845 }
683 846
684 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 847 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
685 848
686 layout->StartRow(0, COLUMN_SET_ID_BUTTONS); 849 layout->StartRow(0, COLUMN_SET_ID_BUTTONS);
687 layout->AddView(CreateLink(this, 850 layout->AddView(CreateLink(this,
688 IDS_TRANSLATE_BUBBLE_LANGUAGE_SETTINGS, 851 IDS_TRANSLATE_BUBBLE_LANGUAGE_SETTINGS,
689 LINK_ID_LANGUAGE_SETTINGS)); 852 LINK_ID_LANGUAGE_SETTINGS));
690 advanced_done_button_ = CreateLabelButton( 853 advanced_done_button_ = use_2016_q2_ui_ ?
691 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE); 854 CreateBlueButton(
855 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE) :
856 CreateLabelButton(
857 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE);
692 advanced_done_button_->SetIsDefault(true); 858 advanced_done_button_->SetIsDefault(true);
693 advanced_cancel_button_ = CreateLabelButton( 859 advanced_cancel_button_ = CreateLabelButton(
694 this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL); 860 this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL);
695 layout->AddView(advanced_done_button_); 861 layout->AddView(advanced_done_button_);
696 layout->AddView(advanced_cancel_button_); 862 layout->AddView(advanced_cancel_button_);
697 863
698 UpdateAdvancedView(); 864 UpdateAdvancedView();
699 865
700 return view; 866 return view;
701 } 867 }
(...skipping 25 matching lines...) Expand all
727 base::string16 source_language_name = 893 base::string16 source_language_name =
728 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); 894 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
729 base::string16 target_language_name = 895 base::string16 target_language_name =
730 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex()); 896 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
731 897
732 // "Always translate" checkbox doesn't exist in an incognito window. 898 // "Always translate" checkbox doesn't exist in an incognito window.
733 if (always_translate_checkbox_) { 899 if (always_translate_checkbox_) {
734 always_translate_checkbox_->SetText( 900 always_translate_checkbox_->SetText(
735 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS)); 901 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS));
736 always_translate_checkbox_->SetChecked( 902 always_translate_checkbox_->SetChecked(
903 use_2016_q2_ui_ ?
904 model_->GetAlwaysTranslateChecked() :
737 model_->ShouldAlwaysTranslate()); 905 model_->ShouldAlwaysTranslate());
738 } 906 }
739 907
740 base::string16 label; 908 base::string16 label;
741 if (model_->IsPageTranslatedInCurrentLanguages()) 909 if (model_->IsPageTranslatedInCurrentLanguages())
742 label = l10n_util::GetStringUTF16(IDS_DONE); 910 label = l10n_util::GetStringUTF16(IDS_DONE);
743 else 911 else
744 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); 912 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT);
745 advanced_done_button_->SetText(label); 913 advanced_done_button_->SetText(label);
746 advanced_done_button_->SizeToPreferredSize(); 914 advanced_done_button_->SizeToPreferredSize();
747 if (advanced_view_) 915 if (advanced_view_)
748 advanced_view_->Layout(); 916 advanced_view_->Layout();
749 } 917 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698