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 |