| 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..234c13fab7b69ee56f6325d182bd14e8dfcab625 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,14 @@ 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;
|
| -
|
| - if (model_)
|
| - model_->RemoveObserver(this);
|
| -
|
| - model_ = model;
|
| - if (model_) {
|
| - model_->AddObserver(this);
|
| - IconChanged();
|
| - HintTextChanged();
|
| - }
|
| +SearchBoxView::~SearchBoxView() {
|
| + model_->search_box()->RemoveObserver(this);
|
| }
|
|
|
| bool SearchBoxView::HasSearch() const {
|
| @@ -137,10 +128,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 +156,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
|
|
|