Chromium Code Reviews| Index: chrome/browser/ui/views/translate/translate_bubble_view.cc |
| diff --git a/chrome/browser/ui/views/translate/translate_bubble_view.cc b/chrome/browser/ui/views/translate/translate_bubble_view.cc |
| index b72959369e3761ce6b56130fe1514920109f715d..2cf26ceb1071737a424b841b9a9efb8a345d3f35 100644 |
| --- a/chrome/browser/ui/views/translate/translate_bubble_view.cc |
| +++ b/chrome/browser/ui/views/translate/translate_bubble_view.cc |
| @@ -6,7 +6,6 @@ |
| #include <algorithm> |
| #include <string> |
| -#include <vector> |
| #include "base/i18n/string_compare.h" |
| #include "base/memory/singleton.h" |
| @@ -19,6 +18,7 @@ |
| #include "chrome/browser/translate/translate_service.h" |
| #include "chrome/browser/ui/chrome_pages.h" |
| #include "chrome/browser/ui/translate/translate_bubble_model_impl.h" |
| +#include "chrome/browser/ui/translate/translate_denial_combobox_model.h" |
| #include "chrome/common/url_constants.h" |
| #include "components/translate/core/browser/translate_download_manager.h" |
| #include "components/translate/core/browser/translate_manager.h" |
| @@ -59,47 +59,6 @@ views::Link* CreateLink(views::LinkListener* listener, |
| return link; |
| } |
| -class TranslateDenialComboboxModel : public ui::ComboboxModel { |
| - public: |
| - enum { |
| - INDEX_NOPE = 0, |
| - INDEX_NEVER_TRANSLATE_LANGUAGE = 2, |
| - INDEX_NEVER_TRANSLATE_SITE = 4, |
| - }; |
| - |
| - explicit TranslateDenialComboboxModel( |
| - const base::string16& original_language_name) { |
| - items_.push_back(l10n_util::GetStringUTF16(IDS_TRANSLATE_BUBBLE_DENY)); |
| - items_.push_back(base::string16()); |
| - items_.push_back(l10n_util::GetStringFUTF16( |
| - IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_LANG, |
| - original_language_name)); |
| - items_.push_back(base::string16()); |
| - items_.push_back(l10n_util::GetStringUTF16( |
| - IDS_TRANSLATE_BUBBLE_NEVER_TRANSLATE_SITE)); |
| - } |
| - virtual ~TranslateDenialComboboxModel() {} |
| - |
| - private: |
| - // Overridden from ui::ComboboxModel: |
| - virtual int GetItemCount() const OVERRIDE { |
| - return items_.size(); |
| - } |
| - virtual base::string16 GetItemAt(int index) OVERRIDE { |
| - return items_[index]; |
| - } |
| - virtual bool IsItemSeparatorAt(int index) OVERRIDE { |
| - return items_[index].empty(); |
| - } |
| - virtual int GetDefaultIndex() const OVERRIDE { |
| - return 0; |
| - } |
| - |
| - std::vector<base::string16> items_; |
| - |
| - DISALLOW_COPY_AND_ASSIGN(TranslateDenialComboboxModel); |
| -}; |
| - |
| } // namespace |
| // static |
| @@ -446,8 +405,9 @@ views::View* TranslateBubbleView::CreateViewBeforeTranslate() { |
| base::string16 original_language_name = |
| model_->GetLanguageNameAt(model_->GetOriginalLanguageIndex()); |
| - denial_combobox_ = new views::Combobox( |
| + denial_combobox_model_.reset( |
| new TranslateDenialComboboxModel(original_language_name)); |
| + denial_combobox_ = new views::Combobox(denial_combobox_model_.get()); |
|
sky
2014/06/17 16:30:38
I believe you need to explicitly destroy the combo
hajimehoshi
2014/06/18 08:33:37
|denial_combobox_model_| is initialized only once
sky
2014/06/18 16:57:19
I missed the explicit RemoveAlloChildViews(true).
|
| denial_combobox_->set_id(COMBOBOX_ID_DENIAL); |
| denial_combobox_->set_listener(this); |
| denial_combobox_->SetStyle(views::Combobox::STYLE_ACTION); |