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

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: Move close button tracking code to OnWidgetClosing() 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
210 void TranslateBubbleView::OnWidgetClosing(views::Widget* widget) {
211 if (GetBubbleFrameView()->close_button_clicked()) {
212 model_->DeclineTranslation();
213 ReportUiAction(CLOSE_BUTTON_CLICKED);
214 }
215 }
216
168 void TranslateBubbleView::WindowClosing() { 217 void TranslateBubbleView::WindowClosing() {
169 // The operations for |model_| are valid only when a WebContents is alive. 218 // The operations for |model_| are valid only when a WebContents is alive.
170 // TODO(hajimehoshi): TranslateBubbleViewModel(Impl) should not hold a 219 // TODO(hajimehoshi): TranslateBubbleViewModel(Impl) should not hold a
171 // WebContents as a member variable because the WebContents might be destroyed 220 // WebContents as a member variable because the WebContents might be destroyed
172 // while the TranslateBubbleViewModel(Impl) is still alive. Instead, 221 // while the TranslateBubbleViewModel(Impl) is still alive. Instead,
173 // TranslateBubbleViewModel should take a reference of a WebContents at each 222 // TranslateBubbleViewModel should take a reference of a WebContents at each
174 // method. (crbug/320497) 223 // method. (crbug/320497)
175 if (web_contents()) 224 if (web_contents())
176 model_->OnBubbleClosing(); 225 model_->OnBubbleClosing();
177 226
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 } 274 }
226 275
227 void TranslateBubbleView::OnPerformAction(views::Combobox* combobox) { 276 void TranslateBubbleView::OnPerformAction(views::Combobox* combobox) {
228 HandleComboboxPerformAction(static_cast<ComboboxID>(combobox->id())); 277 HandleComboboxPerformAction(static_cast<ComboboxID>(combobox->id()));
229 } 278 }
230 279
231 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) { 280 void TranslateBubbleView::LinkClicked(views::Link* source, int event_flags) {
232 HandleLinkClicked(static_cast<LinkID>(source->id())); 281 HandleLinkClicked(static_cast<LinkID>(source->id()));
233 } 282 }
234 283
284 void TranslateBubbleView::StyledLabelLinkClicked(views::StyledLabel* label,
285 const gfx::Range& range,
286 int event_flags) {
287 SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
288 ReportUiAction(ADVANCED_LINK_CLICKED);
289 }
290
235 void TranslateBubbleView::WebContentsDestroyed() { 291 void TranslateBubbleView::WebContentsDestroyed() {
236 GetWidget()->CloseNow(); 292 GetWidget()->CloseNow();
237 } 293 }
238 294
239 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const { 295 TranslateBubbleModel::ViewState TranslateBubbleView::GetViewState() const {
240 return model_->GetViewState(); 296 return model_->GetViewState();
241 } 297 }
242 298
243 TranslateBubbleView::TranslateBubbleView( 299 TranslateBubbleView::TranslateBubbleView(
244 views::View* anchor_view, 300 views::View* anchor_view,
245 std::unique_ptr<TranslateBubbleModel> model, 301 std::unique_ptr<TranslateBubbleModel> model,
246 translate::TranslateErrors::Type error_type, 302 translate::TranslateErrors::Type error_type,
247 content::WebContents* web_contents) 303 content::WebContents* web_contents)
248 : LocationBarBubbleDelegateView(anchor_view, web_contents), 304 : LocationBarBubbleDelegateView(anchor_view, web_contents),
249 WebContentsObserver(web_contents), 305 WebContentsObserver(web_contents),
250 before_translate_view_(NULL), 306 before_translate_view_(NULL),
251 translating_view_(NULL), 307 translating_view_(NULL),
252 after_translate_view_(NULL), 308 after_translate_view_(NULL),
253 error_view_(NULL), 309 error_view_(NULL),
254 advanced_view_(NULL), 310 advanced_view_(NULL),
255 denial_combobox_(NULL), 311 denial_combobox_(NULL),
256 source_language_combobox_(NULL), 312 source_language_combobox_(NULL),
257 target_language_combobox_(NULL), 313 target_language_combobox_(NULL),
258 always_translate_checkbox_(NULL), 314 always_translate_checkbox_(NULL),
259 advanced_cancel_button_(NULL), 315 advanced_cancel_button_(NULL),
260 advanced_done_button_(NULL), 316 advanced_done_button_(NULL),
261 model_(std::move(model)), 317 model_(std::move(model)),
262 error_type_(error_type), 318 error_type_(error_type),
263 is_in_incognito_window_( 319 is_in_incognito_window_(
264 web_contents && web_contents->GetBrowserContext()->IsOffTheRecord()) { 320 web_contents && web_contents->GetBrowserContext()->IsOffTheRecord()),
321 use_2016_q2_ui_(base::FeatureList::IsEnabled(
322 translate::kTranslateUI2016Q2)) {
265 translate_bubble_view_ = this; 323 translate_bubble_view_ = this;
266 } 324 }
267 325
268 views::View* TranslateBubbleView::GetCurrentView() const { 326 views::View* TranslateBubbleView::GetCurrentView() const {
269 switch (model_->GetViewState()) { 327 switch (model_->GetViewState()) {
270 case TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE: 328 case TranslateBubbleModel::VIEW_STATE_BEFORE_TRANSLATE:
271 return before_translate_view_; 329 return before_translate_view_;
272 case TranslateBubbleModel::VIEW_STATE_TRANSLATING: 330 case TranslateBubbleModel::VIEW_STATE_TRANSLATING:
273 return translating_view_; 331 return translating_view_;
274 case TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE: 332 case TranslateBubbleModel::VIEW_STATE_AFTER_TRANSLATE:
275 return after_translate_view_; 333 return after_translate_view_;
276 case TranslateBubbleModel::VIEW_STATE_ERROR: 334 case TranslateBubbleModel::VIEW_STATE_ERROR:
277 return error_view_; 335 return error_view_;
278 case TranslateBubbleModel::VIEW_STATE_ADVANCED: 336 case TranslateBubbleModel::VIEW_STATE_ADVANCED:
279 return advanced_view_; 337 return advanced_view_;
280 } 338 }
281 NOTREACHED(); 339 NOTREACHED();
282 return NULL; 340 return NULL;
283 } 341 }
284 342
285 void TranslateBubbleView::HandleButtonPressed( 343 void TranslateBubbleView::HandleButtonPressed(
286 TranslateBubbleView::ButtonID sender_id) { 344 TranslateBubbleView::ButtonID sender_id) {
287 switch (sender_id) { 345 switch (sender_id) {
288 case BUTTON_ID_TRANSLATE: { 346 case BUTTON_ID_TRANSLATE: {
289 model_->Translate(); 347 model_->Translate();
348 ReportUiAction(TRANSLATE_BUTTON_CLICKED);
290 break; 349 break;
291 } 350 }
292 case BUTTON_ID_DONE: { 351 case BUTTON_ID_DONE: {
293 if (always_translate_checkbox_) 352 if (always_translate_checkbox_)
294 model_->SetAlwaysTranslate(always_translate_checkbox_->checked()); 353 model_->SetAlwaysTranslate(always_translate_checkbox_->checked());
295 if (model_->IsPageTranslatedInCurrentLanguages()) { 354 if (model_->IsPageTranslatedInCurrentLanguages()) {
296 model_->GoBackFromAdvanced(); 355 model_->GoBackFromAdvanced();
297 UpdateChildVisibilities(); 356 UpdateChildVisibilities();
298 SizeToContents(); 357 SizeToContents();
299 } else { 358 } else {
300 model_->Translate(); 359 model_->Translate();
301 SwitchView(TranslateBubbleModel::VIEW_STATE_TRANSLATING); 360 SwitchView(TranslateBubbleModel::VIEW_STATE_TRANSLATING);
302 } 361 }
362 ReportUiAction(DONE_BUTTON_CLICKED);
303 break; 363 break;
304 } 364 }
305 case BUTTON_ID_CANCEL: { 365 case BUTTON_ID_CANCEL: {
306 model_->GoBackFromAdvanced(); 366 model_->GoBackFromAdvanced();
307 UpdateChildVisibilities(); 367 UpdateChildVisibilities();
308 SizeToContents(); 368 SizeToContents();
369 ReportUiAction(CANCEL_BUTTON_CLICKED);
309 break; 370 break;
310 } 371 }
311 case BUTTON_ID_TRY_AGAIN: { 372 case BUTTON_ID_TRY_AGAIN: {
312 model_->Translate(); 373 model_->Translate();
374 ReportUiAction(TRY_AGAIN_BUTTON_CLICKED);
313 break; 375 break;
314 } 376 }
315 case BUTTON_ID_SHOW_ORIGINAL: { 377 case BUTTON_ID_SHOW_ORIGINAL: {
316 model_->RevertTranslation(); 378 model_->RevertTranslation();
317 GetWidget()->Close(); 379 GetWidget()->Close();
380 ReportUiAction(SHOW_ORIGINAL_BUTTON_CLICKED);
318 break; 381 break;
319 } 382 }
320 case BUTTON_ID_ALWAYS_TRANSLATE: { 383 case BUTTON_ID_ALWAYS_TRANSLATE: {
321 // Do nothing. The state of the checkbox affects only when the 'Done' 384 // Do nothing. The state of the checkbox affects only when the 'Done'
322 // button is pressed. 385 // button is pressed.
386 ReportUiAction((always_translate_checkbox_->checked() ?
387 ALWAYS_TRANSLATE_CHECKED :
388 ALWAYS_TRANSLATE_UNCHECKED));
323 break; 389 break;
324 } 390 }
325 } 391 }
326 } 392 }
327 393
328 void TranslateBubbleView::HandleLinkClicked( 394 void TranslateBubbleView::HandleLinkClicked(
329 TranslateBubbleView::LinkID sender_id) { 395 TranslateBubbleView::LinkID sender_id) {
330 switch (sender_id) { 396 switch (sender_id) {
331 case LINK_ID_ADVANCED: { 397 case LINK_ID_ADVANCED: {
332 SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED); 398 SwitchView(TranslateBubbleModel::VIEW_STATE_ADVANCED);
399 ReportUiAction(ADVANCED_LINK_CLICKED);
333 break; 400 break;
334 } 401 }
335 case LINK_ID_LANGUAGE_SETTINGS: { 402 case LINK_ID_LANGUAGE_SETTINGS: {
336 GURL url = chrome::GetSettingsUrl(chrome::kLanguageOptionsSubPage); 403 GURL url = chrome::GetSettingsUrl(chrome::kLanguageOptionsSubPage);
337 web_contents()->OpenURL(content::OpenURLParams( 404 web_contents()->OpenURL(content::OpenURLParams(
338 url, 405 url,
339 content::Referrer(), 406 content::Referrer(),
340 NEW_FOREGROUND_TAB, 407 NEW_FOREGROUND_TAB,
341 ui::PAGE_TRANSITION_LINK, 408 ui::PAGE_TRANSITION_LINK,
342 false)); 409 false));
410 ReportUiAction(SETTING_LINK_CLICKED);
343 break; 411 break;
344 } 412 }
345 } 413 }
346 } 414 }
347 415
348 void TranslateBubbleView::HandleComboboxPerformAction( 416 void TranslateBubbleView::HandleComboboxPerformAction(
349 TranslateBubbleView::ComboboxID sender_id) { 417 TranslateBubbleView::ComboboxID sender_id) {
350 switch (sender_id) { 418 switch (sender_id) {
351 case COMBOBOX_ID_DENIAL: { 419 case COMBOBOX_ID_DENIAL: {
420 DenialComboboxIndex index = static_cast<DenialComboboxIndex>(
421 denial_combobox_->selected_index());
422 if (use_2016_q2_ui_ && index == DenialComboboxIndex::DONT_TRANSLATE) {
423 // Do not noop on 2016q2 UI.
groby-ooo-7-16 2016/04/29 05:26:14 I do not understand what "do not noop" means here
ftang 2016/04/29 14:52:29 sorry, remove "not"
424 return;
425 }
352 model_->DeclineTranslation(); 426 model_->DeclineTranslation();
353 DenialComboboxIndex index =
354 static_cast<DenialComboboxIndex>(denial_combobox_->selected_index());
355 switch (index) { 427 switch (index) {
356 case DenialComboboxIndex::DONT_TRANSLATE: 428 case DenialComboboxIndex::DONT_TRANSLATE:
429 ReportUiAction(NOPE_MENU_CLICKED);
357 break; 430 break;
358 case DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE: 431 case DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE:
359 model_->SetNeverTranslateLanguage(true); 432 model_->SetNeverTranslateLanguage(true);
433 ReportUiAction(NEVER_TRANSLATE_LANGUAGE_MENU_CLICKED);
360 break; 434 break;
361 case DenialComboboxIndex::NEVER_TRANSLATE_SITE: 435 case DenialComboboxIndex::NEVER_TRANSLATE_SITE:
362 model_->SetNeverTranslateSite(true); 436 model_->SetNeverTranslateSite(true);
437 ReportUiAction(NEVER_TRANSLATE_SITE_MENU_CLICKED);
363 break; 438 break;
364 default: 439 default:
365 NOTREACHED(); 440 NOTREACHED();
366 break; 441 break;
367 } 442 }
368 GetWidget()->Close(); 443 GetWidget()->Close();
369 break; 444 break;
370 } 445 }
371 case COMBOBOX_ID_SOURCE_LANGUAGE: { 446 case COMBOBOX_ID_SOURCE_LANGUAGE: {
372 if (model_->GetOriginalLanguageIndex() == 447 if (model_->GetOriginalLanguageIndex() ==
373 source_language_combobox_->selected_index()) { 448 source_language_combobox_->selected_index()) {
374 break; 449 break;
375 } 450 }
376 model_->UpdateOriginalLanguageIndex( 451 model_->UpdateOriginalLanguageIndex(
377 source_language_combobox_->selected_index()); 452 source_language_combobox_->selected_index());
378 UpdateAdvancedView(); 453 UpdateAdvancedView();
454 ReportUiAction(SOURCE_LANGUAGE_MENU_CLICKED);
379 break; 455 break;
380 } 456 }
381 case COMBOBOX_ID_TARGET_LANGUAGE: { 457 case COMBOBOX_ID_TARGET_LANGUAGE: {
382 if (model_->GetTargetLanguageIndex() == 458 if (model_->GetTargetLanguageIndex() ==
383 target_language_combobox_->selected_index()) { 459 target_language_combobox_->selected_index()) {
384 break; 460 break;
385 } 461 }
386 model_->UpdateTargetLanguageIndex( 462 model_->UpdateTargetLanguageIndex(
387 target_language_combobox_->selected_index()); 463 target_language_combobox_->selected_index());
388 UpdateAdvancedView(); 464 UpdateAdvancedView();
465 ReportUiAction(TARGET_LANGUAGE_MENU_CLICKED);
389 break; 466 break;
390 } 467 }
391 } 468 }
392 } 469 }
393 470
394 void TranslateBubbleView::UpdateChildVisibilities() { 471 void TranslateBubbleView::UpdateChildVisibilities() {
395 for (int i = 0; i < child_count(); i++) { 472 for (int i = 0; i < child_count(); i++) {
396 views::View* view = child_at(i); 473 views::View* view = child_at(i);
397 view->SetVisible(view == GetCurrentView()); 474 view->SetVisible(view == GetCurrentView());
398 } 475 }
399 } 476 }
400 477
401 views::View* TranslateBubbleView::CreateViewBeforeTranslate() { 478 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 = 479 base::string16 original_language_name =
406 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); 480 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
407 481
408 std::vector<base::string16> items( 482 std::vector<base::string16> items(
409 static_cast<size_t>(DenialComboboxIndex::MENU_SIZE)); 483 static_cast<size_t>(DenialComboboxIndex::MENU_SIZE));
410 items[static_cast<size_t>(DenialComboboxIndex::DONT_TRANSLATE)] = 484 if (use_2016_q2_ui_) {
411 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_DENY); 485 items[static_cast<size_t>(DenialComboboxIndex::DONT_TRANSLATE)] =
486 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ADVANCED);
487 } else {
488 items[static_cast<size_t>(DenialComboboxIndex::DONT_TRANSLATE)] =
489 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_DENY);
490 }
412 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE)] = 491 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_LANGUAGE)] =
413 l10n_util::GetStringFUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG, 492 l10n_util::GetStringFUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG,
414 original_language_name); 493 original_language_name);
415 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_SITE)] = 494 items[static_cast<size_t>(DenialComboboxIndex::NEVER_TRANSLATE_SITE)] =
416 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE); 495 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE);
417 496
497
418 denial_combobox_model_.reset(new ui::SimpleComboboxModel(items)); 498 denial_combobox_model_.reset(new ui::SimpleComboboxModel(items));
419 denial_combobox_ = new views::Combobox(denial_combobox_model_.get()); 499 denial_combobox_ = new views::Combobox(denial_combobox_model_.get());
500
420 denial_combobox_->set_id(COMBOBOX_ID_DENIAL); 501 denial_combobox_->set_id(COMBOBOX_ID_DENIAL);
421 denial_combobox_->set_listener(this); 502 denial_combobox_->set_listener(this);
422 denial_combobox_->SetStyle(views::Combobox::STYLE_ACTION); 503 denial_combobox_->SetStyle(views::Combobox::STYLE_ACTION);
423 504
505 // In an incognito window, "Always translate" checkbox shouldn't be shown.
506 if (use_2016_q2_ui_ && !is_in_incognito_window_) {
groby-ooo-7-16 2016/04/29 05:26:14 I'm curious - does that mean we should get rid of
ftang 2016/04/29 14:52:29 good question. I will raise that to pendar. It doe
507 always_translate_checkbox_ = new views::Checkbox(base::string16());
508 always_translate_checkbox_->SetChecked(model_->GetAlwaysTranslateChecked());
509 always_translate_checkbox_->set_id(BUTTON_ID_ALWAYS_TRANSLATE);
510 always_translate_checkbox_->SetText(
511 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS));
512 always_translate_checkbox_->set_listener(this);
513 }
514
424 views::View* view = new views::View(); 515 views::View* view = new views::View();
425 views::GridLayout* layout = new views::GridLayout(view); 516 views::GridLayout* layout = new views::GridLayout(view);
426 view->SetLayoutManager(layout); 517 view->SetLayoutManager(layout);
427 518
428 using views::GridLayout; 519 using views::GridLayout;
429 520
430 enum { 521 enum {
431 COLUMN_SET_ID_MESSAGE, 522 COLUMN_SET_ID_MESSAGE,
432 COLUMN_SET_ID_CONTENT, 523 COLUMN_SET_ID_CONTENT,
433 }; 524 };
434 525
435 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 526 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
436 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 527 if (use_2016_q2_ui_) {
437 0, GridLayout::USE_PREF, 0, 0); 528 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
438 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 529 0, GridLayout::USE_PREF, 0, 0);
530 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
531 } else {
532 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
533 0, GridLayout::USE_PREF, 0, 0);
534 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
535 }
439 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 536 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
440 0, GridLayout::USE_PREF, 0, 0); 537 0, GridLayout::USE_PREF, 0, 0);
441 cs->AddPaddingColumn(1, 0); 538 cs->AddPaddingColumn(1, 0);
442 539
443 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 540 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
444 cs->AddPaddingColumn(1, 0); 541 cs->AddPaddingColumn(1, 0);
445 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 542 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
446 0, GridLayout::USE_PREF, 0, 0); 543 0, GridLayout::USE_PREF, 0, 0);
447 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 544 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
448 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 545 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
449 0, GridLayout::USE_PREF, 0, 0); 546 0, GridLayout::USE_PREF, 0, 0);
450 547
451 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 548 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
452 layout->AddView(message_label); 549 if (use_2016_q2_ui_) {
453 layout->AddView(CreateLink(this, 550 AddIconToLayout(layout);
454 IDS_TRANSLATE_BUBBLE_ADVANCED,
455 LINK_ID_ADVANCED));
456 551
552 base::string16 target_language_name =
553 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
554 std::vector<size_t> offsets;
555 auto styled_label = new views::StyledLabel(
556 l10n_util::GetStringFUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE2,
557 original_language_name,
558 target_language_name,
559 &offsets),
560 this);
561 auto style_info = views::StyledLabel::RangeStyleInfo::CreateForLink();
562 styled_label->AddStyleRange(
563 gfx::Range(static_cast<uint32_t>(offsets[0]),
564 static_cast<uint32_t>(offsets[0] +
565 original_language_name.length())),
566 style_info);
567 styled_label->AddStyleRange(
568 gfx::Range(static_cast<uint32_t>(offsets[1]),
569 static_cast<uint32_t>(offsets[1] +
570 target_language_name.length())),
571 style_info);
572 styled_label->SetBounds(styled_label->x(),
573 styled_label->y(),
574 kQuestionWidth,
575 styled_label->GetHeightForWidth(kQuestionWidth));
576
577 layout->AddView(styled_label);
578 } else {
579 auto message_label = new views::Label(
580 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_BEFORE_TRANSLATE));
581 layout->AddView(message_label);
582 auto link = CreateLink(this,
583 IDS_TRANSLATE_BUBBLE_ADVANCED,
584 LINK_ID_ADVANCED);
585 layout->AddView(link);
586 }
587
588
589 if (use_2016_q2_ui_ && !is_in_incognito_window_) {
590 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
591 layout->SkipColumns(1);
592 layout->AddView(always_translate_checkbox_);
593 }
457 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 594 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
458 595
459 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 596 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
460 views::LabelButton* accept_button = CreateLabelButton( 597 views::LabelButton* accept_button = use_2016_q2_ui_ ?
461 this, 598 CreateBlueButton(
462 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT), 599 this,
463 BUTTON_ID_TRANSLATE); 600 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT),
601 BUTTON_ID_TRANSLATE) :
602 CreateLabelButton(
603 this,
604 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT),
605 BUTTON_ID_TRANSLATE);
464 layout->AddView(accept_button); 606 layout->AddView(accept_button);
465 accept_button->SetIsDefault(true); 607 accept_button->SetIsDefault(true);
466 layout->AddView(denial_combobox_); 608 layout->AddView(denial_combobox_);
467 609
468 return view; 610 return view;
469 } 611 }
470 612
471 views::View* TranslateBubbleView::CreateViewTranslating() { 613 views::View* TranslateBubbleView::CreateViewTranslating() {
472 base::string16 target_language_name = 614 base::string16 target_language_name =
473 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex()); 615 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
474 views::Label* label = new views::Label( 616 views::Label* label = new views::Label(
475 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_TRANSLATING)); 617 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_TRANSLATING));
476 618
477 views::View* view = new views::View(); 619 views::View* view = new views::View();
478 views::GridLayout* layout = new views::GridLayout(view); 620 views::GridLayout* layout = new views::GridLayout(view);
479 view->SetLayoutManager(layout); 621 view->SetLayoutManager(layout);
480 622
481 using views::GridLayout; 623 using views::GridLayout;
482 624
483 enum { 625 enum {
484 COLUMN_SET_ID_MESSAGE, 626 COLUMN_SET_ID_MESSAGE,
485 COLUMN_SET_ID_CONTENT, 627 COLUMN_SET_ID_CONTENT,
486 }; 628 };
487 629
488 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 630 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
631 if (use_2016_q2_ui_) {
632 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
633 0, views::GridLayout::USE_PREF, 0, 0);
634 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
635 }
489 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 636 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
490 0, views::GridLayout::USE_PREF, 0, 0); 637 0, GridLayout::USE_PREF, 0, 0);
491 cs->AddPaddingColumn(1, 0); 638 cs->AddPaddingColumn(1, 0);
492 639
493 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 640 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
494 cs->AddPaddingColumn(1, 0); 641 cs->AddPaddingColumn(1, 0);
495 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 642 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
496 0, GridLayout::USE_PREF, 0, 0); 643 0, GridLayout::USE_PREF, 0, 0);
497 644
498 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 645 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
646 if (use_2016_q2_ui_) {
647 AddIconToLayout(layout);
648 }
499 layout->AddView(label); 649 layout->AddView(label);
500 650
501 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 651 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
502 652
503 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 653 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
504 views::LabelButton* revert_button = CreateLabelButton( 654 views::LabelButton* revert_button = CreateLabelButton(
505 this, 655 this,
506 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_REVERT), 656 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_REVERT),
507 BUTTON_ID_SHOW_ORIGINAL); 657 BUTTON_ID_SHOW_ORIGINAL);
508 revert_button->SetEnabled(false); 658 revert_button->SetEnabled(false);
(...skipping 11 matching lines...) Expand all
520 view->SetLayoutManager(layout); 670 view->SetLayoutManager(layout);
521 671
522 using views::GridLayout; 672 using views::GridLayout;
523 673
524 enum { 674 enum {
525 COLUMN_SET_ID_MESSAGE, 675 COLUMN_SET_ID_MESSAGE,
526 COLUMN_SET_ID_CONTENT, 676 COLUMN_SET_ID_CONTENT,
527 }; 677 };
528 678
529 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 679 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
680 if (use_2016_q2_ui_) {
681 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
682 0, views::GridLayout::USE_PREF, 0, 0);
683 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
684 }
530 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 685 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
531 0, views::GridLayout::USE_PREF, 0, 0); 686 0, views::GridLayout::USE_PREF, 0, 0);
532 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 687 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
533 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 688 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
534 0, views::GridLayout::USE_PREF, 0, 0); 689 0, GridLayout::USE_PREF, 0, 0);
535 cs->AddPaddingColumn(1, 0); 690 cs->AddPaddingColumn(1, 0);
536 691
537 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 692 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
538 cs->AddPaddingColumn(1, 0); 693 cs->AddPaddingColumn(1, 0);
539 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 694 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
540 0, GridLayout::USE_PREF, 0, 0); 695 0, GridLayout::USE_PREF, 0, 0);
541 696
542 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 697 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
698 if (use_2016_q2_ui_) {
699 AddIconToLayout(layout);
700 }
543 layout->AddView(label); 701 layout->AddView(label);
544 layout->AddView(CreateLink(this, 702 layout->AddView(CreateLink(this,
545 IDS_TRANSLATE_BUBBLE_ADVANCED, 703 IDS_TRANSLATE_BUBBLE_ADVANCED,
546 LINK_ID_ADVANCED)); 704 LINK_ID_ADVANCED));
547 705
548 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 706 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
549 707
550 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 708 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
551 layout->AddView(CreateLabelButton( 709 layout->AddView(CreateLabelButton(
552 this, 710 this,
(...skipping 12 matching lines...) Expand all
565 view->SetLayoutManager(layout); 723 view->SetLayoutManager(layout);
566 724
567 using views::GridLayout; 725 using views::GridLayout;
568 726
569 enum { 727 enum {
570 COLUMN_SET_ID_MESSAGE, 728 COLUMN_SET_ID_MESSAGE,
571 COLUMN_SET_ID_CONTENT, 729 COLUMN_SET_ID_CONTENT,
572 }; 730 };
573 731
574 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE); 732 views::ColumnSet* cs = layout->AddColumnSet(COLUMN_SET_ID_MESSAGE);
733 if (use_2016_q2_ui_) {
734 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
735 0, GridLayout::USE_PREF, 0, 0);
736 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
737 }
575 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 738 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
576 0, GridLayout::USE_PREF, 0, 0); 739 0, GridLayout::USE_PREF, 0, 0);
577 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing); 740 cs->AddPaddingColumn(0, views::kRelatedButtonHSpacing);
578 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 741 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
579 0, GridLayout::USE_PREF, 0, 0); 742 0, GridLayout::USE_PREF, 0, 0);
580 cs->AddPaddingColumn(1, 0); 743 cs->AddPaddingColumn(1, 0);
581 744
582 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT); 745 cs = layout->AddColumnSet(COLUMN_SET_ID_CONTENT);
583 cs->AddPaddingColumn(1, 0); 746 cs->AddPaddingColumn(1, 0);
584 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER, 747 cs->AddColumn(GridLayout::LEADING, GridLayout::CENTER,
585 0, GridLayout::USE_PREF, 0, 0); 748 0, GridLayout::USE_PREF, 0, 0);
586 749
587 layout->StartRow(0, COLUMN_SET_ID_MESSAGE); 750 layout->StartRow(0, COLUMN_SET_ID_MESSAGE);
751 if (use_2016_q2_ui_) {
752 AddIconToLayout(layout);
753 }
588 layout->AddView(label); 754 layout->AddView(label);
589 layout->AddView(CreateLink(this, 755 layout->AddView(CreateLink(this,
590 IDS_TRANSLATE_BUBBLE_ADVANCED, 756 IDS_TRANSLATE_BUBBLE_ADVANCED,
591 LINK_ID_ADVANCED)); 757 LINK_ID_ADVANCED));
592 758
593 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 759 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
594 760
595 layout->StartRow(0, COLUMN_SET_ID_CONTENT); 761 layout->StartRow(0, COLUMN_SET_ID_CONTENT);
596 layout->AddView(CreateLabelButton( 762 layout->AddView(CreateLabelButton(
597 this, 763 this,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
680 layout->SkipColumns(1); 846 layout->SkipColumns(1);
681 layout->AddView(always_translate_checkbox_); 847 layout->AddView(always_translate_checkbox_);
682 } 848 }
683 849
684 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing); 850 layout->AddPaddingRow(0, views::kUnrelatedControlVerticalSpacing);
685 851
686 layout->StartRow(0, COLUMN_SET_ID_BUTTONS); 852 layout->StartRow(0, COLUMN_SET_ID_BUTTONS);
687 layout->AddView(CreateLink(this, 853 layout->AddView(CreateLink(this,
688 IDS_TRANSLATE_BUBBLE_LANGUAGE_SETTINGS, 854 IDS_TRANSLATE_BUBBLE_LANGUAGE_SETTINGS,
689 LINK_ID_LANGUAGE_SETTINGS)); 855 LINK_ID_LANGUAGE_SETTINGS));
690 advanced_done_button_ = CreateLabelButton( 856 advanced_done_button_ = use_2016_q2_ui_ ?
691 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE); 857 CreateBlueButton(
858 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE) :
859 CreateLabelButton(
860 this, l10n_util::GetStringUTF16(IDS_DONE), BUTTON_ID_DONE);
692 advanced_done_button_->SetIsDefault(true); 861 advanced_done_button_->SetIsDefault(true);
693 advanced_cancel_button_ = CreateLabelButton( 862 advanced_cancel_button_ = CreateLabelButton(
694 this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL); 863 this, l10n_util::GetStringUTF16(IDS_CANCEL), BUTTON_ID_CANCEL);
695 layout->AddView(advanced_done_button_); 864 layout->AddView(advanced_done_button_);
696 layout->AddView(advanced_cancel_button_); 865 layout->AddView(advanced_cancel_button_);
697 866
698 UpdateAdvancedView(); 867 UpdateAdvancedView();
699 868
700 return view; 869 return view;
701 } 870 }
(...skipping 25 matching lines...) Expand all
727 base::string16 source_language_name = 896 base::string16 source_language_name =
728 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); 897 model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex());
729 base::string16 target_language_name = 898 base::string16 target_language_name =
730 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex()); 899 model_->GetLanguageNameAt(model_->GetTargetLanguageIndex());
731 900
732 // "Always translate" checkbox doesn't exist in an incognito window. 901 // "Always translate" checkbox doesn't exist in an incognito window.
733 if (always_translate_checkbox_) { 902 if (always_translate_checkbox_) {
734 always_translate_checkbox_->SetText( 903 always_translate_checkbox_->SetText(
735 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS)); 904 l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ALWAYS));
736 always_translate_checkbox_->SetChecked( 905 always_translate_checkbox_->SetChecked(
906 use_2016_q2_ui_ ?
907 model_->GetAlwaysTranslateChecked() :
737 model_->ShouldAlwaysTranslate()); 908 model_->ShouldAlwaysTranslate());
738 } 909 }
739 910
740 base::string16 label; 911 base::string16 label;
741 if (model_->IsPageTranslatedInCurrentLanguages()) 912 if (model_->IsPageTranslatedInCurrentLanguages())
742 label = l10n_util::GetStringUTF16(IDS_DONE); 913 label = l10n_util::GetStringUTF16(IDS_DONE);
743 else 914 else
744 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT); 915 label = l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_ACCEPT);
745 advanced_done_button_->SetText(label); 916 advanced_done_button_->SetText(label);
746 advanced_done_button_->SizeToPreferredSize(); 917 advanced_done_button_->SizeToPreferredSize();
747 if (advanced_view_) 918 if (advanced_view_)
748 advanced_view_->Layout(); 919 advanced_view_->Layout();
749 } 920 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698