Chromium Code Reviews| Index: ui/app_list/views/search_box_view.cc |
| diff --git a/ui/app_list/views/search_box_view.cc b/ui/app_list/views/search_box_view.cc |
| index 73a04a60ac294bef55569be699f5c86ce75d871f..43ef9330ceed9031ba3f68093336a0e7afc666b4 100644 |
| --- a/ui/app_list/views/search_box_view.cc |
| +++ b/ui/app_list/views/search_box_view.cc |
| @@ -7,6 +7,7 @@ |
| #include <algorithm> |
| #include "grit/ui_resources.h" |
| +#include "ui/app_list/app_list_model.h" |
| #include "ui/app_list/search_box_model.h" |
| #include "ui/app_list/search_box_view_delegate.h" |
| #include "ui/app_list/views/app_list_menu_views.h" |
| @@ -31,13 +32,15 @@ const SkColor kHintTextColor = SkColorSetRGB(0xA0, 0xA0, 0xA0); |
| } // namespace |
| SearchBoxView::SearchBoxView(SearchBoxViewDelegate* delegate, |
| - AppListViewDelegate* view_delegate) |
| + AppListViewDelegate* view_delegate, |
| + AppListModel* model) |
| : delegate_(delegate), |
| view_delegate_(view_delegate), |
| - model_(NULL), |
| + model_(model), |
| icon_view_(new views::ImageView), |
| search_box_(new views::Textfield), |
| contents_view_(NULL) { |
| + DCHECK(model_); |
| AddChildView(icon_view_); |
| ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| @@ -57,26 +60,15 @@ SearchBoxView::SearchBoxView(SearchBoxViewDelegate* delegate, |
| search_box_->set_placeholder_text_color(kHintTextColor); |
| search_box_->SetController(this); |
| AddChildView(search_box_); |
| -} |
| -SearchBoxView::~SearchBoxView() { |
| - if (model_) |
| - model_->RemoveObserver(this); |
| + model_->search_box()->AddObserver(this); |
| + IconChanged(); |
| + HintTextChanged(); |
| } |
| -void SearchBoxView::SetModel(SearchBoxModel* model) { |
| - if (model_ == model) |
| - return; |
| - |
| +SearchBoxView::~SearchBoxView() { |
| if (model_) |
|
tapted
2013/08/05 03:01:39
This `if` should be redundant now -- model_ is alw
calamity
2013/08/08 04:52:12
Done.
|
| - model_->RemoveObserver(this); |
| - |
| - model_ = model; |
| - if (model_) { |
| - model_->AddObserver(this); |
| - IconChanged(); |
| - HintTextChanged(); |
| - } |
| + model_->search_box()->RemoveObserver(this); |
| } |
| bool SearchBoxView::HasSearch() const { |
| @@ -137,10 +129,10 @@ bool SearchBoxView::OnMouseWheel(const ui::MouseWheelEvent& event) { |
| void SearchBoxView::UpdateModel() { |
| // Temporarily remove from observer to ignore notifications caused by us. |
| - model_->RemoveObserver(this); |
| - model_->SetText(search_box_->text()); |
| - model_->SetSelectionModel(search_box_->GetSelectionModel()); |
| - model_->AddObserver(this); |
| + model_->search_box()->RemoveObserver(this); |
| + model_->search_box()->SetText(search_box_->text()); |
| + model_->search_box()->SetSelectionModel(search_box_->GetSelectionModel()); |
| + model_->search_box()->AddObserver(this); |
| } |
| void SearchBoxView::NotifyQueryChanged() { |
| @@ -165,26 +157,26 @@ bool SearchBoxView::HandleKeyEvent(views::Textfield* sender, |
| void SearchBoxView::OnMenuButtonClicked(View* source, const gfx::Point& point) { |
| if (!menu_) |
| - menu_.reset(new AppListMenuViews(view_delegate_)); |
| + menu_.reset(new AppListMenuViews(view_delegate_, model_)); |
| menu_->RunMenuAt(menu_button_, |
| menu_button_->GetBoundsInScreen().bottom_right()); |
| } |
| void SearchBoxView::IconChanged() { |
| - icon_view_->SetImage(model_->icon()); |
| + icon_view_->SetImage(model_->search_box()->icon()); |
| } |
| void SearchBoxView::HintTextChanged() { |
| - search_box_->set_placeholder_text(model_->hint_text()); |
| + search_box_->set_placeholder_text(model_->search_box()->hint_text()); |
| } |
| void SearchBoxView::SelectionModelChanged() { |
| - search_box_->SelectSelectionModel(model_->selection_model()); |
| + search_box_->SelectSelectionModel(model_->search_box()->selection_model()); |
| } |
| void SearchBoxView::TextChanged() { |
| - search_box_->SetText(model_->text()); |
| + search_box_->SetText(model_->search_box()->text()); |
| } |
| } // namespace app_list |