diff options
author | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 01:05:13 +0000 |
---|---|---|
committer | pkasting@chromium.org <pkasting@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-09-21 01:05:13 +0000 |
commit | 9f943482aeae06cce870673456b4a005cccf69ee (patch) | |
tree | f683da4f932d29297fc88f1f0d5f949b7203bf65 /chrome/browser/translate/translate_infobar_delegate.cc | |
parent | 5940934f1496b94c3dc6e0be9efa2bf26774fcd6 (diff) | |
download | chromium_src-9f943482aeae06cce870673456b4a005cccf69ee.zip chromium_src-9f943482aeae06cce870673456b4a005cccf69ee.tar.gz chromium_src-9f943482aeae06cce870673456b4a005cccf69ee.tar.bz2 |
Simplify the translate infobar code some.
The primary change here is to take LanguagesMenuModel, which was used by views, unused by GTK, and only "used" by Cocoa to get the appropriate language names for a menu (which can be done by calling functions on the TranslateInfobarDelegate directly), and make it truly views-specific.
In turn this means we can get rid of the TranslateInfoBarView class, which was only ever used by views even though all platforms included it. Instead, the SetOriginalLanguage() and SetTargetLanguage() functions on the infobar delegate now become simple setters, and each platform calls Translate() as a followup directly where appropriate. (This split was necessary because views needed to maintain the current calling order, where the delegate updates the language index, then the infobar updates the button text, then Translate() is called.)
Along the way we also make a number of delegate functions unix_hacker()-style inline getters/setters, and remove some unnecessary "virtual" declarations on functions never overridden. Finally there are a bunch of other small code simplifications.
BUG=100840
TEST=none
Review URL: https://codereview.chromium.org/10952016
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@157889 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/translate/translate_infobar_delegate.cc')
-rw-r--r-- | chrome/browser/translate/translate_infobar_delegate.cc | 87 |
1 files changed, 21 insertions, 66 deletions
diff --git a/chrome/browser/translate/translate_infobar_delegate.cc b/chrome/browser/translate/translate_infobar_delegate.cc index cd0566e..84e7fff 100644 --- a/chrome/browser/translate/translate_infobar_delegate.cc +++ b/chrome/browser/translate/translate_infobar_delegate.cc @@ -10,11 +10,9 @@ #include "chrome/browser/browser_process.h" #include "chrome/browser/infobars/infobar_tab_helper.h" #include "chrome/browser/profiles/profile.h" -#include "chrome/browser/translate/translate_infobar_view.h" #include "chrome/browser/translate/translate_manager.h" #include "chrome/browser/translate/translate_tab_helper.h" #include "chrome/browser/ui/tab_contents/tab_contents.h" -#include "chrome/common/chrome_constants.h" #include "content/public/browser/navigation_details.h" #include "content/public/browser/navigation_entry.h" #include "content/public/browser/web_contents.h" @@ -72,56 +70,15 @@ TranslateInfoBarDelegate* TranslateInfoBarDelegate::CreateErrorDelegate( TranslateInfoBarDelegate::~TranslateInfoBarDelegate() { } -std::string TranslateInfoBarDelegate::GetLanguageCodeAt(size_t index) const { - DCHECK_LT(index, GetLanguageCount()); - return languages_[index].first; -} - -string16 TranslateInfoBarDelegate::GetLanguageDisplayableNameAt( - size_t index) const { - DCHECK_LT(index, GetLanguageCount()); - return languages_[index].second; -} - -std::string TranslateInfoBarDelegate::GetOriginalLanguageCode() const { - return (original_language_index() == kNoIndex) ? - chrome::kUnknownLanguageCode : - GetLanguageCodeAt(original_language_index()); -} - -std::string TranslateInfoBarDelegate::GetTargetLanguageCode() const { - return GetLanguageCodeAt(target_language_index()); -} - -void TranslateInfoBarDelegate::SetOriginalLanguage(size_t language_index) { - DCHECK_LT(language_index, GetLanguageCount()); - original_language_index_ = language_index; - if (infobar_view_) - infobar_view_->OriginalLanguageChanged(); - if (type_ == AFTER_TRANSLATE) - Translate(); -} - -void TranslateInfoBarDelegate::SetTargetLanguage(size_t language_index) { - DCHECK_LT(language_index, GetLanguageCount()); - DCHECK_GE(language_index, 0U); - target_language_index_ = language_index; - if (infobar_view_) - infobar_view_->TargetLanguageChanged(); - if (type_ == AFTER_TRANSLATE) - Translate(); -} - void TranslateInfoBarDelegate::Translate() { - const std::string& original_language_code = GetOriginalLanguageCode(); if (!owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord()) { - prefs_.ResetTranslationDeniedCount(original_language_code); - prefs_.IncrementTranslationAcceptedCount(original_language_code); + prefs_.ResetTranslationDeniedCount(original_language_code()); + prefs_.IncrementTranslationAcceptedCount(original_language_code()); } TranslateManager::GetInstance()->TranslatePage(owner()->GetWebContents(), - GetLanguageCodeAt(original_language_index()), - GetLanguageCodeAt(target_language_index())); + original_language_code(), + target_language_code()); } void TranslateInfoBarDelegate::RevertTranslation() { @@ -135,10 +92,9 @@ void TranslateInfoBarDelegate::ReportLanguageDetectionError() { } void TranslateInfoBarDelegate::TranslationDeclined() { - const std::string& original_language_code = GetOriginalLanguageCode(); if (!owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord()) { - prefs_.ResetTranslationAcceptedCount(original_language_code); - prefs_.IncrementTranslationDeniedCount(original_language_code); + prefs_.ResetTranslationAcceptedCount(original_language_code()); + prefs_.IncrementTranslationDeniedCount(original_language_code()); } // Remember that the user declined the translation so as to prevent showing a @@ -152,11 +108,11 @@ void TranslateInfoBarDelegate::TranslationDeclined() { } bool TranslateInfoBarDelegate::IsLanguageBlacklisted() { - return prefs_.IsLanguageBlacklisted(GetOriginalLanguageCode()); + return prefs_.IsLanguageBlacklisted(original_language_code()); } void TranslateInfoBarDelegate::ToggleLanguageBlacklist() { - const std::string& original_lang = GetOriginalLanguageCode(); + const std::string& original_lang = original_language_code(); if (prefs_.IsLanguageBlacklisted(original_lang)) { prefs_.RemoveLanguageFromBlacklist(original_lang); } else { @@ -184,13 +140,13 @@ void TranslateInfoBarDelegate::ToggleSiteBlacklist() { } bool TranslateInfoBarDelegate::ShouldAlwaysTranslate() { - return prefs_.IsLanguagePairWhitelisted(GetOriginalLanguageCode(), - GetTargetLanguageCode()); + return prefs_.IsLanguagePairWhitelisted(original_language_code(), + target_language_code()); } void TranslateInfoBarDelegate::ToggleAlwaysTranslate() { - const std::string& original_lang = GetOriginalLanguageCode(); - const std::string& target_lang = GetTargetLanguageCode(); + const std::string& original_lang = original_language_code(); + const std::string& target_lang = target_language_code(); if (prefs_.IsLanguagePairWhitelisted(original_lang, target_lang)) prefs_.RemoveLanguagePairFromWhitelist(original_lang, target_lang); else @@ -198,15 +154,15 @@ void TranslateInfoBarDelegate::ToggleAlwaysTranslate() { } void TranslateInfoBarDelegate::AlwaysTranslatePageLanguage() { - const std::string& original_lang = GetOriginalLanguageCode(); - const std::string& target_lang = GetTargetLanguageCode(); + const std::string& original_lang = original_language_code(); + const std::string& target_lang = target_language_code(); DCHECK(!prefs_.IsLanguagePairWhitelisted(original_lang, target_lang)); prefs_.WhitelistLanguagePair(original_lang, target_lang); Translate(); } void TranslateInfoBarDelegate::NeverTranslatePageLanguage() { - std::string original_lang = GetOriginalLanguageCode(); + std::string original_lang = original_language_code(); DCHECK(!prefs_.IsLanguageBlacklisted(original_lang)); prefs_.BlacklistLanguage(original_lang); RemoveSelf(); @@ -215,7 +171,7 @@ void TranslateInfoBarDelegate::NeverTranslatePageLanguage() { string16 TranslateInfoBarDelegate::GetMessageInfoBarText() { if (type_ == TRANSLATING) { return l10n_util::GetStringFUTF16(IDS_TRANSLATE_INFOBAR_TRANSLATING_TO, - GetLanguageDisplayableNameAt(target_language_index_)); + language_name_at(target_language_index_)); } DCHECK_EQ(TRANSLATION_ERROR, type_); @@ -233,11 +189,11 @@ string16 TranslateInfoBarDelegate::GetMessageInfoBarText() { case TranslateErrors::UNSUPPORTED_LANGUAGE: return l10n_util::GetStringFUTF16( IDS_TRANSLATE_INFOBAR_UNSUPPORTED_PAGE_LANGUAGE, - GetLanguageDisplayableNameAt(target_language_index_)); + language_name_at(target_language_index_)); case TranslateErrors::IDENTICAL_LANGUAGES: return l10n_util::GetStringFUTF16( IDS_TRANSLATE_INFOBAR_ERROR_SAME_LANGUAGE, - GetLanguageDisplayableNameAt(target_language_index_)); + language_name_at(target_language_index_)); default: NOTREACHED(); return string16(); @@ -264,7 +220,7 @@ void TranslateInfoBarDelegate::MessageInfoBarButtonPressed() { } // This is the "Try again..." case. TranslateManager::GetInstance()->TranslatePage(owner()->GetWebContents(), - GetOriginalLanguageCode(), GetTargetLanguageCode()); + original_language_code(), target_language_code()); } bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { @@ -274,13 +230,13 @@ bool TranslateInfoBarDelegate::ShouldShowMessageInfoBarButton() { bool TranslateInfoBarDelegate::ShouldShowNeverTranslateButton() { DCHECK_EQ(BEFORE_TRANSLATE, type_); return !owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord() && - (prefs_.GetTranslationDeniedCount(GetOriginalLanguageCode()) >= 3); + (prefs_.GetTranslationDeniedCount(original_language_code()) >= 3); } bool TranslateInfoBarDelegate::ShouldShowAlwaysTranslateButton() { DCHECK_EQ(BEFORE_TRANSLATE, type_); return !owner()->GetWebContents()->GetBrowserContext()->IsOffTheRecord() && - (prefs_.GetTranslationAcceptedCount(GetOriginalLanguageCode()) >= 3); + (prefs_.GetTranslationAcceptedCount(original_language_code()) >= 3); } void TranslateInfoBarDelegate::UpdateBackgroundAnimation( @@ -333,7 +289,6 @@ TranslateInfoBarDelegate::TranslateInfoBarDelegate( initial_original_language_index_(kNoIndex), target_language_index_(kNoIndex), error_(error), - infobar_view_(NULL), prefs_(prefs) { DCHECK_NE((type_ == TRANSLATION_ERROR), (error == TranslateErrors::NONE)); |