OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/app_list/views/search_result_list_view.h" | 5 #include "ui/app_list/views/search_result_list_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
11 #include "base/time/time.h" | 11 #include "base/time/time.h" |
12 #include "third_party/skia/include/core/SkColor.h" | 12 #include "third_party/skia/include/core/SkColor.h" |
13 #include "ui/app_list/app_list_switches.h" | 13 #include "ui/app_list/app_list_switches.h" |
14 #include "ui/app_list/app_list_view_delegate.h" | 14 #include "ui/app_list/app_list_view_delegate.h" |
15 #include "ui/app_list/search_result.h" | |
15 #include "ui/app_list/views/search_result_list_view_delegate.h" | 16 #include "ui/app_list/views/search_result_list_view_delegate.h" |
16 #include "ui/app_list/views/search_result_view.h" | 17 #include "ui/app_list/views/search_result_view.h" |
17 #include "ui/events/event.h" | 18 #include "ui/events/event.h" |
18 #include "ui/gfx/animation/linear_animation.h" | 19 #include "ui/gfx/animation/linear_animation.h" |
19 #include "ui/views/background.h" | 20 #include "ui/views/background.h" |
20 #include "ui/views/layout/box_layout.h" | 21 #include "ui/views/layout/box_layout.h" |
21 | 22 |
22 namespace { | 23 namespace { |
23 | 24 |
24 const int kMaxResults = 6; | 25 const int kMaxResults = 6; |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
156 SetAutoLaunchTimeout(base::TimeDelta()); | 157 SetAutoLaunchTimeout(base::TimeDelta()); |
157 view_delegate_->AutoLaunchCanceled(); | 158 view_delegate_->AutoLaunchCanceled(); |
158 } | 159 } |
159 | 160 |
160 SearchResultView* SearchResultListView::GetResultViewAt(int index) { | 161 SearchResultView* SearchResultListView::GetResultViewAt(int index) { |
161 DCHECK(index >= 0 && index < results_container_->child_count()); | 162 DCHECK(index >= 0 && index < results_container_->child_count()); |
162 return static_cast<SearchResultView*>(results_container_->child_at(index)); | 163 return static_cast<SearchResultView*>(results_container_->child_at(index)); |
163 } | 164 } |
164 | 165 |
165 void SearchResultListView::Update() { | 166 void SearchResultListView::Update() { |
166 last_visible_index_ = 0; | 167 std::vector<SearchResult*> display_results = |
168 AppListModel::GetSearchResultsForDisplayType( | |
169 results_, | |
170 SearchResult::DISPLAY_LIST, | |
171 results_container_->child_count()); | |
172 last_visible_index_ = display_results.size() - 1; | |
173 | |
167 for (size_t i = 0; i < static_cast<size_t>(results_container_->child_count()); | 174 for (size_t i = 0; i < static_cast<size_t>(results_container_->child_count()); |
168 ++i) { | 175 ++i) { |
169 SearchResultView* result_view = GetResultViewAt(i); | 176 SearchResultView* result_view = GetResultViewAt(i); |
170 if (i < results_->item_count()) { | 177 SearchResult* item = NULL; |
171 result_view->SetResult(results_->GetItemAt(i)); | 178 if (i < display_results.size()) |
Matt Giuca
2014/08/06 08:54:53
I think I prefer the old formulation of:
if (i <
calamity
2014/08/12 05:03:37
Done.
| |
172 result_view->SetVisible(true); | 179 item = display_results[i]; |
173 last_visible_index_ = i; | 180 |
174 } else { | 181 result_view->SetResult(item); |
175 result_view->SetResult(NULL); | 182 result_view->SetVisible(item != NULL); |
176 result_view->SetVisible(false); | |
177 } | |
178 } | 183 } |
179 if (selected_index_ > last_visible_index_) | 184 if (selected_index_ > last_visible_index_) |
180 SetSelectedIndex(last_visible_index_); | 185 SetSelectedIndex(last_visible_index_); |
181 | 186 |
182 Layout(); | 187 Layout(); |
183 update_factory_.InvalidateWeakPtrs(); | 188 update_factory_.InvalidateWeakPtrs(); |
184 UpdateAutoLaunchState(); | 189 UpdateAutoLaunchState(); |
185 } | 190 } |
186 | 191 |
187 void SearchResultListView::ScheduleUpdate() { | 192 void SearchResultListView::ScheduleUpdate() { |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
283 if (delegate_ && view->result()) | 288 if (delegate_ && view->result()) |
284 delegate_->OnResultInstalled(view->result()); | 289 delegate_->OnResultInstalled(view->result()); |
285 } | 290 } |
286 | 291 |
287 void SearchResultListView::OnSearchResultUninstalled(SearchResultView* view) { | 292 void SearchResultListView::OnSearchResultUninstalled(SearchResultView* view) { |
288 if (delegate_ && view->result()) | 293 if (delegate_ && view->result()) |
289 delegate_->OnResultUninstalled(view->result()); | 294 delegate_->OnResultUninstalled(view->result()); |
290 } | 295 } |
291 | 296 |
292 } // namespace app_list | 297 } // namespace app_list |
OLD | NEW |