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

Side by Side Diff: chrome/browser/ui/cocoa/translate/translate_bubble_controller.mm

Issue 1971703004: add log to mac translate bubble implementation (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: change to use translate::ReportUiAction 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #import "chrome/browser/ui/cocoa/translate/translate_bubble_controller.h" 5 #import "chrome/browser/ui/cocoa/translate/translate_bubble_controller.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #include "base/mac/scoped_nsobject.h" 10 #include "base/mac/scoped_nsobject.h"
11 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/metrics/histogram_macros.h"
12 #include "base/strings/sys_string_conversions.h" 13 #include "base/strings/sys_string_conversions.h"
13 #import "chrome/browser/ui/cocoa/browser_window_controller.h" 14 #import "chrome/browser/ui/cocoa/browser_window_controller.h"
14 #import "chrome/browser/ui/cocoa/bubble_combobox.h" 15 #import "chrome/browser/ui/cocoa/bubble_combobox.h"
15 #import "chrome/browser/ui/cocoa/info_bubble_view.h" 16 #import "chrome/browser/ui/cocoa/info_bubble_view.h"
16 #import "chrome/browser/ui/cocoa/info_bubble_window.h" 17 #import "chrome/browser/ui/cocoa/info_bubble_window.h"
17 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h" 18 #import "chrome/browser/ui/cocoa/toolbar/toolbar_controller.h"
18 #include "chrome/browser/ui/translate/language_combobox_model.h" 19 #include "chrome/browser/ui/translate/language_combobox_model.h"
19 #include "chrome/browser/ui/translate/translate_bubble_model_impl.h" 20 #include "chrome/browser/ui/translate/translate_bubble_model_impl.h"
21 #include "chrome/browser/ui/translate/translate_bubble_view_state_transition.h"
20 #include "chrome/grit/generated_resources.h" 22 #include "chrome/grit/generated_resources.h"
21 #include "components/translate/core/browser/translate_ui_delegate.h" 23 #include "components/translate/core/browser/translate_ui_delegate.h"
22 #include "content/public/browser/browser_context.h" 24 #include "content/public/browser/browser_context.h"
23 #include "grit/components_strings.h" 25 #include "grit/components_strings.h"
24 #include "ui/base/cocoa/cocoa_base_utils.h" 26 #include "ui/base/cocoa/cocoa_base_utils.h"
25 #import "ui/base/cocoa/controls/hyperlink_button_cell.h" 27 #import "ui/base/cocoa/controls/hyperlink_button_cell.h"
26 #import "ui/base/cocoa/window_size_constants.h" 28 #import "ui/base/cocoa/window_size_constants.h"
27 #include "ui/base/l10n/l10n_util.h" 29 #include "ui/base/l10n/l10n_util.h"
28 #include "ui/base/models/combobox_model.h" 30 #include "ui/base/models/combobox_model.h"
29 31
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 - (void)updateAdvancedView; 86 - (void)updateAdvancedView;
85 - (NSTextField*)addText:(NSString*)text 87 - (NSTextField*)addText:(NSString*)text
86 toView:(NSView*)view; 88 toView:(NSView*)view;
87 - (NSButton*)addLinkButtonWithText:(NSString*)text 89 - (NSButton*)addLinkButtonWithText:(NSString*)text
88 action:(SEL)action 90 action:(SEL)action
89 toView:(NSView*)view; 91 toView:(NSView*)view;
90 - (NSButton*)addButton:(NSString*)title 92 - (NSButton*)addButton:(NSString*)title
91 action:(SEL)action 93 action:(SEL)action
92 toView:(NSView*)view; 94 toView:(NSView*)view;
93 - (NSButton*)addCheckbox:(NSString*)title 95 - (NSButton*)addCheckbox:(NSString*)title
96 action:(SEL)action
94 toView:(NSView*)view; 97 toView:(NSView*)view;
95 - (NSPopUpButton*)addPopUpButton:(ui::ComboboxModel*)model 98 - (NSPopUpButton*)addPopUpButton:(ui::ComboboxModel*)model
96 action:(SEL)action 99 action:(SEL)action
97 toView:(NSView*)view; 100 toView:(NSView*)view;
98 - (void)handleNopeButtonPressed; 101 - (void)handleAlwaysTranslateCheckboxPressed;
99 - (void)handleDoneButtonPressed; 102 - (void)handleDoneButtonPressed;
100 - (void)handleCancelButtonPressed; 103 - (void)handleCancelButtonPressed;
101 - (void)handleShowOriginalButtonPressed; 104 - (void)handleShowOriginalButtonPressed;
102 - (void)handleAdvancedLinkButtonPressed; 105 - (void)handleAdvancedLinkButtonPressed;
103 - (void)handleDenialPopUpButtonNopeSelected; 106 - (void)handleDenialPopUpButtonNopeSelected;
104 - (void)handleDenialPopUpButtonNeverTranslateLanguageSelected; 107 - (void)handleDenialPopUpButtonNeverTranslateLanguageSelected;
105 - (void)handleDenialPopUpButtonNeverTranslateSiteSelected; 108 - (void)handleDenialPopUpButtonNeverTranslateSiteSelected;
106 - (void)handleSourceLanguagePopUpButtonSelectedItemChanged:(id)sender; 109 - (void)handleSourceLanguagePopUpButtonSelectedItemChanged:(id)sender;
107 - (void)handleTargetLanguagePopUpButtonSelectedItemChanged:(id)sender; 110 - (void)handleTargetLanguagePopUpButtonSelectedItemChanged:(id)sender;
108 111
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 [self addPopUpButton:targetLanguageComboboxModel_.get() 422 [self addPopUpButton:targetLanguageComboboxModel_.get()
420 action:action 423 action:action
421 toView:view]; 424 toView:view];
422 425
423 // 'Always translate' checkbox 426 // 'Always translate' checkbox
424 BOOL isIncognitoWindow = webContents_ ? 427 BOOL isIncognitoWindow = webContents_ ?
425 webContents_->GetBrowserContext()->IsOffTheRecord() : NO; 428 webContents_->GetBrowserContext()->IsOffTheRecord() : NO;
426 if (!isIncognitoWindow) { 429 if (!isIncognitoWindow) {
427 NSString* title = 430 NSString* title =
428 l10n_util::GetNSStringWithFixup(IDS_TRANSLATE_BUBBLE_ALWAYS); 431 l10n_util::GetNSStringWithFixup(IDS_TRANSLATE_BUBBLE_ALWAYS);
432 action = @selector(handleAlwaysTranslateCheckboxPressed);
429 alwaysTranslateCheckbox_ = [self addCheckbox:title 433 alwaysTranslateCheckbox_ = [self addCheckbox:title
434 action:action
430 toView:view]; 435 toView:view];
431 } 436 }
432 437
433 // Buttons 438 // Buttons
434 advancedDoneButton_ = 439 advancedDoneButton_ =
435 [self addButton:l10n_util::GetNSStringWithFixup(IDS_DONE) 440 [self addButton:l10n_util::GetNSStringWithFixup(IDS_DONE)
436 action:@selector(handleDoneButtonPressed) 441 action:@selector(handleDoneButtonPressed)
437 toView:view]; 442 toView:view];
438 advancedCancelButton_ = 443 advancedCancelButton_ =
439 [self addButton:l10n_util::GetNSStringWithFixup(IDS_CANCEL) 444 [self addButton:l10n_util::GetNSStringWithFixup(IDS_CANCEL)
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 [button sizeToFit]; 565 [button sizeToFit];
561 [button setTarget:self]; 566 [button setTarget:self];
562 [button setAction:action]; 567 [button setAction:action];
563 568
564 [view addSubview:button.get()]; 569 [view addSubview:button.get()];
565 570
566 return button.get(); 571 return button.get();
567 } 572 }
568 573
569 - (NSButton*)addCheckbox:(NSString*)title 574 - (NSButton*)addCheckbox:(NSString*)title
575 action:(SEL)action
570 toView:(NSView*)view { 576 toView:(NSView*)view {
571 base::scoped_nsobject<NSButton> button( 577 base::scoped_nsobject<NSButton> button(
572 [[NSButton alloc] initWithFrame:NSZeroRect]); 578 [[NSButton alloc] initWithFrame:NSZeroRect]);
573 [button setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]]; 579 [button setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]];
574 [button setTitle:title]; 580 [button setTitle:title];
575 [[button cell] setControlSize:NSSmallControlSize]; 581 [[button cell] setControlSize:NSSmallControlSize];
576 [button setButtonType:NSSwitchButton]; 582 [button setButtonType:NSSwitchButton];
577 [button sizeToFit]; 583 [button sizeToFit];
584 [button setTarget:self];
585 [button setAction:action];
578 586
579 [view addSubview:button.get()]; 587 [view addSubview:button.get()];
580 588
581 return button.get(); 589 return button.get();
582 } 590 }
583 591
584 - (NSPopUpButton*)addPopUpButton:(ui::ComboboxModel*)model 592 - (NSPopUpButton*)addPopUpButton:(ui::ComboboxModel*)model
585 action:(SEL)action 593 action:(SEL)action
586 toView:(NSView*)view { 594 toView:(NSView*)view {
587 base::scoped_nsobject<NSPopUpButton> button( 595 base::scoped_nsobject<NSPopUpButton> button(
588 [[BubbleCombobox alloc] initWithFrame:NSZeroRect 596 [[BubbleCombobox alloc] initWithFrame:NSZeroRect
589 pullsDown:NO 597 pullsDown:NO
590 model:model]); 598 model:model]);
591 [button setTarget:self]; 599 [button setTarget:self];
592 [button setAction:action]; 600 [button setAction:action];
593 [button sizeToFit]; 601 [button sizeToFit];
594 [view addSubview:button.get()]; 602 [view addSubview:button.get()];
595 return button.get(); 603 return button.get();
596 } 604 }
597 605
598 - (void)handleTranslateButtonPressed { 606 - (void)handleTranslateButtonPressed {
607 translate::ReportUiAction(translate::TRANSLATE_BUTTON_CLICKED);
599 translateExecuted_ = YES; 608 translateExecuted_ = YES;
600 model_->Translate(); 609 model_->Translate();
601 } 610 }
602 611
603 - (void)handleNopeButtonPressed { 612 - (void)handleAlwaysTranslateCheckboxPressed {
604 model_->DeclineTranslation(); 613 translate::ReportUiAction([alwaysTranslateCheckbox_ state] == NSOnState
605 [self close]; 614 ? translate::ALWAYS_TRANSLATE_CHECKED
615 : translate::ALWAYS_TRANSLATE_UNCHECKED);
606 } 616 }
607 617
608 - (void)handleDoneButtonPressed { 618 - (void)handleDoneButtonPressed {
619 translate::ReportUiAction(translate::DONE_BUTTON_CLICKED);
609 if (alwaysTranslateCheckbox_) { 620 if (alwaysTranslateCheckbox_) {
610 model_->SetAlwaysTranslate( 621 model_->SetAlwaysTranslate(
611 [alwaysTranslateCheckbox_ state] == NSOnState); 622 [alwaysTranslateCheckbox_ state] == NSOnState);
612 } 623 }
613 if (model_->IsPageTranslatedInCurrentLanguages()) { 624 if (model_->IsPageTranslatedInCurrentLanguages()) {
614 model_->GoBackFromAdvanced(); 625 model_->GoBackFromAdvanced();
615 [self performLayout]; 626 [self performLayout];
616 } else { 627 } else {
617 translateExecuted_ = true; 628 translateExecuted_ = true;
618 model_->Translate(); 629 model_->Translate();
619 [self switchView:TranslateBubbleModel::VIEW_STATE_TRANSLATING]; 630 [self switchView:TranslateBubbleModel::VIEW_STATE_TRANSLATING];
620 } 631 }
621 } 632 }
622 633
623 - (void)handleCancelButtonPressed { 634 - (void)handleCancelButtonPressed {
635 translate::ReportUiAction(translate::CANCEL_BUTTON_CLICKED);
624 model_->GoBackFromAdvanced(); 636 model_->GoBackFromAdvanced();
625 [self performLayout]; 637 [self performLayout];
626 } 638 }
627 639
628 - (void)handleShowOriginalButtonPressed { 640 - (void)handleShowOriginalButtonPressed {
641 translate::ReportUiAction(translate::SHOW_ORIGINAL_BUTTON_CLICKED);
629 model_->RevertTranslation(); 642 model_->RevertTranslation();
630 [self close]; 643 [self close];
631 } 644 }
632 645
633 - (void)handleAdvancedLinkButtonPressed { 646 - (void)handleAdvancedLinkButtonPressed {
647 translate::ReportUiAction(translate::ADVANCED_LINK_CLICKED);
634 [self switchView:TranslateBubbleModel::VIEW_STATE_ADVANCED]; 648 [self switchView:TranslateBubbleModel::VIEW_STATE_ADVANCED];
635 } 649 }
636 650
637 - (void)handleDenialPopUpButtonNopeSelected { 651 - (void)handleDenialPopUpButtonNopeSelected {
652 translate::ReportUiAction(translate::NOPE_MENU_CLICKED);
638 model_->DeclineTranslation(); 653 model_->DeclineTranslation();
639 [self close]; 654 [self close];
640 } 655 }
641 656
642 - (void)handleDenialPopUpButtonNeverTranslateLanguageSelected { 657 - (void)handleDenialPopUpButtonNeverTranslateLanguageSelected {
658 translate::ReportUiAction(translate::NEVER_TRANSLATE_LANGUAGE_MENU_CLICKED);
643 model_->DeclineTranslation(); 659 model_->DeclineTranslation();
644 model_->SetNeverTranslateLanguage(true); 660 model_->SetNeverTranslateLanguage(true);
645 [self close]; 661 [self close];
646 } 662 }
647 663
648 - (void)handleDenialPopUpButtonNeverTranslateSiteSelected { 664 - (void)handleDenialPopUpButtonNeverTranslateSiteSelected {
665 translate::ReportUiAction(translate::NEVER_TRANSLATE_SITE_MENU_CLICKED);
649 model_->DeclineTranslation(); 666 model_->DeclineTranslation();
650 model_->SetNeverTranslateSite(true); 667 model_->SetNeverTranslateSite(true);
651 [self close]; 668 [self close];
652 } 669 }
653 670
654 - (void)handleSourceLanguagePopUpButtonSelectedItemChanged:(id)sender { 671 - (void)handleSourceLanguagePopUpButtonSelectedItemChanged:(id)sender {
672 translate::ReportUiAction(translate::SOURCE_LANGUAGE_MENU_CLICKED);
655 NSPopUpButton* button = base::mac::ObjCCastStrict<NSPopUpButton>(sender); 673 NSPopUpButton* button = base::mac::ObjCCastStrict<NSPopUpButton>(sender);
656 model_->UpdateOriginalLanguageIndex([button indexOfSelectedItem]); 674 model_->UpdateOriginalLanguageIndex([button indexOfSelectedItem]);
657 [self updateAdvancedView]; 675 [self updateAdvancedView];
658 } 676 }
659 677
660 - (void)handleTargetLanguagePopUpButtonSelectedItemChanged:(id)sender { 678 - (void)handleTargetLanguagePopUpButtonSelectedItemChanged:(id)sender {
679 translate::ReportUiAction(translate::TARGET_LANGUAGE_MENU_CLICKED);
661 NSPopUpButton* button = base::mac::ObjCCastStrict<NSPopUpButton>(sender); 680 NSPopUpButton* button = base::mac::ObjCCastStrict<NSPopUpButton>(sender);
662 model_->UpdateTargetLanguageIndex([button indexOfSelectedItem]); 681 model_->UpdateTargetLanguageIndex([button indexOfSelectedItem]);
663 [self updateAdvancedView]; 682 [self updateAdvancedView];
664 } 683 }
665 684
666 @end 685 @end
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698