summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--chrome/browser/cocoa/translate_infobar.h3
-rw-r--r--chrome/browser/cocoa/translate_infobar.mm4
-rw-r--r--chrome/browser/cocoa/translate_infobar_unittest.mm16
-rw-r--r--chrome/browser/gtk/translate_infobars.cc3
-rw-r--r--chrome/browser/translate/options_menu_model.cc34
-rw-r--r--chrome/browser/translate/translate_infobars_delegates.cc72
-rw-r--r--chrome/browser/views/infobars/translate_infobars.cc3
7 files changed, 53 insertions, 82 deletions
diff --git a/chrome/browser/cocoa/translate_infobar.h b/chrome/browser/cocoa/translate_infobar.h
index 3df507b..2c43c3a 100644
--- a/chrome/browser/cocoa/translate_infobar.h
+++ b/chrome/browser/cocoa/translate_infobar.h
@@ -81,4 +81,7 @@ class TranslateNotificationObserverBridge;
// Verifies that the layout of the infobar is correct for |state|.
- (bool)verifyLayout:(TranslateInfoBarDelegate::TranslateState)state;
+// Teardown and rebuild the options menu.
+- (void)rebuildOptionsMenu;
+
@end
diff --git a/chrome/browser/cocoa/translate_infobar.mm b/chrome/browser/cocoa/translate_infobar.mm
index bb277db..28b1fb7 100644
--- a/chrome/browser/cocoa/translate_infobar.mm
+++ b/chrome/browser/cocoa/translate_infobar.mm
@@ -178,9 +178,6 @@ class TranslateNotificationObserverBridge :
// Completely rebuild "from" and "to" language menus from the data model.
- (void)populateLanguageMenus;
-// Teardown and rebuild the options menu.
-- (void)rebuildOptionsMenu;
-
@end
#pragma mark TranslateInfoBarController class
@@ -262,7 +259,6 @@ class TranslateNotificationObserverBridge :
- (void)updateState {
// Fixup our GUI.
[self loadLabelText];
- [self rebuildOptionsMenu];
[self resizeAndSetControlVisibility];
[self layout];
diff --git a/chrome/browser/cocoa/translate_infobar_unittest.mm b/chrome/browser/cocoa/translate_infobar_unittest.mm
index 9a7042a..f871139 100644
--- a/chrome/browser/cocoa/translate_infobar_unittest.mm
+++ b/chrome/browser/cocoa/translate_infobar_unittest.mm
@@ -122,10 +122,11 @@ TEST_F(TranslationBarInfoTest, OptionsMenuItemsHookedUp) {
.Times(0);
CreateInfoBar();
+ [infobar_controller rebuildOptionsMenu];
NSMenu* optionsMenu = [infobar_controller optionsMenu];
NSArray* optionsMenuItems = [optionsMenu itemArray];
- EXPECT_EQ([optionsMenuItems count], 4U);
+ EXPECT_EQ([optionsMenuItems count], 5U);
// First item is the options menu button's title, so there's no need to test
// that the target on that is setup correctly.
@@ -133,9 +134,16 @@ TEST_F(TranslationBarInfoTest, OptionsMenuItemsHookedUp) {
NSMenuItem* item = [optionsMenuItems objectAtIndex:i];
EXPECT_EQ([item target], infobar_controller.get());
}
- NSMenuItem* neverTranslateLanguateItem = [optionsMenuItems objectAtIndex:1];
- NSMenuItem* neverTranslateSiteItem = [optionsMenuItems objectAtIndex:2];
- NSMenuItem* aboutTranslateItem = [optionsMenuItems objectAtIndex:3];
+ NSMenuItem* alwaysTranslateLanguateItem = [optionsMenuItems objectAtIndex:1];
+ NSMenuItem* neverTranslateLanguateItem = [optionsMenuItems objectAtIndex:2];
+ NSMenuItem* neverTranslateSiteItem = [optionsMenuItems objectAtIndex:3];
+ NSMenuItem* aboutTranslateItem = [optionsMenuItems objectAtIndex:4];
+
+ {
+ EXPECT_CALL(*infobar_delegate, ToggleAlwaysTranslate())
+ .Times(1);
+ [infobar_controller menuItemSelected:alwaysTranslateLanguateItem];
+ }
{
EXPECT_CALL(*infobar_delegate, ToggleLanguageBlacklist())
diff --git a/chrome/browser/gtk/translate_infobars.cc b/chrome/browser/gtk/translate_infobars.cc
index 4cffe6c0..d83e7a2 100644
--- a/chrome/browser/gtk/translate_infobars.cc
+++ b/chrome/browser/gtk/translate_infobars.cc
@@ -295,9 +295,6 @@ void TranslateInfoBar::UpdateState(
NOTIMPLEMENTED() << "Received state " << new_state;
}
}
-
- // Clear options menu model so that it'll be created for new state.
- options_menu_model_.reset();
}
void TranslateInfoBar::SetLabels() {
diff --git a/chrome/browser/translate/options_menu_model.cc b/chrome/browser/translate/options_menu_model.cc
index 4364e07..5f0dd66 100644
--- a/chrome/browser/translate/options_menu_model.cc
+++ b/chrome/browser/translate/options_menu_model.cc
@@ -12,26 +12,20 @@
OptionsMenuModel::OptionsMenuModel(menus::SimpleMenuModel::Delegate* delegate,
TranslateInfoBarDelegate* translate_delegate)
: menus::SimpleMenuModel(delegate) {
- string16 original_language =
- translate_delegate->GetDisplayNameForLocale(
- translate_delegate->original_lang_code());
- TranslateInfoBarDelegate::TranslateState state = translate_delegate->state();
- if (state == TranslateInfoBarDelegate::kBeforeTranslate) {
- AddCheckItem(IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_LANG,
- l10n_util::GetStringFUTF16(
- IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_LANG,
- original_language));
- AddCheckItem(IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_SITE,
- l10n_util::GetStringUTF16(
- IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_SITE));
- } else if (state == TranslateInfoBarDelegate::kAfterTranslate) {
- string16 target_language =
- translate_delegate->GetDisplayNameForLocale(
- translate_delegate->target_lang_code());
- AddCheckItem(IDC_TRANSLATE_OPTIONS_ALWAYS,
- l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS_ALWAYS,
- original_language, target_language));
- }
+ string16 original_language = translate_delegate->GetDisplayNameForLocale(
+ translate_delegate->original_lang_code());
+ string16 target_language = translate_delegate->GetDisplayNameForLocale(
+ translate_delegate->target_lang_code());
+ AddCheckItem(IDC_TRANSLATE_OPTIONS_ALWAYS,
+ l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_OPTIONS_ALWAYS,
+ original_language, target_language));
+ AddCheckItem(IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_LANG,
+ l10n_util::GetStringFUTF16(
+ IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_LANG,
+ original_language));
+ AddCheckItem(IDC_TRANSLATE_OPTIONS_NEVER_TRANSLATE_SITE,
+ l10n_util::GetStringUTF16(
+ IDS_TRANSLATE_INFOBAR_OPTIONS_NEVER_TRANSLATE_SITE));
AddItemWithStringId(IDC_TRANSLATE_OPTIONS_ABOUT,
IDS_TRANSLATE_INFOBAR_OPTIONS_ABOUT);
}
diff --git a/chrome/browser/translate/translate_infobars_delegates.cc b/chrome/browser/translate/translate_infobars_delegates.cc
index aeaef50..b0c3540 100644
--- a/chrome/browser/translate/translate_infobars_delegates.cc
+++ b/chrome/browser/translate/translate_infobars_delegates.cc
@@ -95,69 +95,45 @@ void TranslateInfoBarDelegate::TranslationDeclined() {
}
bool TranslateInfoBarDelegate::IsLanguageBlacklisted() {
- if (state_ == kBeforeTranslate) {
- never_translate_language_ =
- prefs_->IsLanguageBlacklisted(original_lang_code());
- return never_translate_language_;
- }
- NOTREACHED() << "Invalid mehod called for translate state";
- return false;
+ never_translate_language_ =
+ prefs_->IsLanguageBlacklisted(original_lang_code());
+ return never_translate_language_;
}
bool TranslateInfoBarDelegate::IsSiteBlacklisted() {
- if (state_ == kBeforeTranslate) {
- never_translate_site_ = prefs_->IsSiteBlacklisted(site_);
- return never_translate_site_;
- }
- NOTREACHED() << "Invalid mehod called for translate state";
- return false;
+ never_translate_site_ = prefs_->IsSiteBlacklisted(site_);
+ return never_translate_site_;
}
bool TranslateInfoBarDelegate::ShouldAlwaysTranslate() {
- if (state_ == kAfterTranslate) {
- always_translate_ = prefs_->IsLanguagePairWhitelisted(original_lang_code(),
- target_lang_code());
- return always_translate_;
- }
- NOTREACHED() << "Invalid mehod called for translate state";
- return false;
+ always_translate_ = prefs_->IsLanguagePairWhitelisted(original_lang_code(),
+ target_lang_code());
+ return always_translate_;
}
void TranslateInfoBarDelegate::ToggleLanguageBlacklist() {
- if (state_ == kBeforeTranslate) {
- never_translate_language_ = !never_translate_language_;
- if (never_translate_language_)
- prefs_->BlacklistLanguage(original_lang_code());
- else
- prefs_->RemoveLanguageFromBlacklist(original_lang_code());
- } else {
- NOTREACHED() << "Invalid method called for translate state";
- }
+ never_translate_language_ = !never_translate_language_;
+ if (never_translate_language_)
+ prefs_->BlacklistLanguage(original_lang_code());
+ else
+ prefs_->RemoveLanguageFromBlacklist(original_lang_code());
}
void TranslateInfoBarDelegate::ToggleSiteBlacklist() {
- if (state_ == kBeforeTranslate) {
- never_translate_site_ = !never_translate_site_;
- if (never_translate_site_)
- prefs_->BlacklistSite(site_);
- else
- prefs_->RemoveSiteFromBlacklist(site_);
- } else {
- NOTREACHED() << "Invalid mehod called for translate state";
- }
+ never_translate_site_ = !never_translate_site_;
+ if (never_translate_site_)
+ prefs_->BlacklistSite(site_);
+ else
+ prefs_->RemoveSiteFromBlacklist(site_);
}
void TranslateInfoBarDelegate::ToggleAlwaysTranslate() {
- if (state_ == kAfterTranslate) {
- always_translate_ = !always_translate_;
- if (always_translate_)
- prefs_->WhitelistLanguagePair(original_lang_code(), target_lang_code());
- else
- prefs_->RemoveLanguagePairFromWhitelist(original_lang_code(),
- target_lang_code());
- } else {
- NOTREACHED() << "Invalid mehod called for translate state";
- }
+ always_translate_ = !always_translate_;
+ if (always_translate_)
+ prefs_->WhitelistLanguagePair(original_lang_code(), target_lang_code());
+ else
+ prefs_->RemoveLanguagePairFromWhitelist(original_lang_code(),
+ target_lang_code());
}
void TranslateInfoBarDelegate::GetMessageText(string16 *message_text,
diff --git a/chrome/browser/views/infobars/translate_infobars.cc b/chrome/browser/views/infobars/translate_infobars.cc
index 7217b64..0543898 100644
--- a/chrome/browser/views/infobars/translate_infobars.cc
+++ b/chrome/browser/views/infobars/translate_infobars.cc
@@ -332,9 +332,6 @@ void TranslateInfoBar::UpdateState(
// Trigger layout and repaint.
Layout();
SchedulePaint();
-
- // Clear options menu model so that it'll be created for new state.
- options_menu_model_.reset();
}
// TranslateInfoBar, views::View overrides: ------------------------------------