Chromium Code Reviews| Index: ui/app_list/views/start_page_view.cc |
| diff --git a/ui/app_list/views/start_page_view.cc b/ui/app_list/views/start_page_view.cc |
| index 0bac15b7b2ab6f8edd0963a7683af447347acb52..fd5b60748d9719fc5997525c41b6f02fe93f6917 100644 |
| --- a/ui/app_list/views/start_page_view.cc |
| +++ b/ui/app_list/views/start_page_view.cc |
| @@ -126,8 +126,6 @@ class StartPageView::StartPageTilesContainer |
| AllAppsTileItemView* all_apps_button() { return all_apps_button_; } |
| // Overridden from SearchResultContainerView: |
| - int Update() override; |
| - void UpdateSelectedIndex(int old_selected, int new_selected) override; |
| void OnContainerSelected(bool from_bottom, |
| bool directional_movement) override; |
| void NotifyFirstResultYIndex(int y_index) override; |
| @@ -136,6 +134,10 @@ class StartPageView::StartPageTilesContainer |
| private: |
| void CreateAppsGrid(int apps_num); |
| + // Overridden from SearchResultContainerView: |
| + int DoUpdate() override; |
| + void UpdateSelectedIndex(int old_selected, int new_selected) override; |
|
xiyuan
2017/01/04 00:12:09
nit: I don't have a strong preference of whether t
xdai1
2017/01/04 00:30:20
Just curious, why should we keep the overridden me
xiyuan
2017/01/04 00:36:27
Think that would make it easier to read. And style
xdai1
2017/01/04 23:18:41
Done. Thanks for the reference!
|
| + |
| ContentsView* contents_view_; |
| AppListViewDelegate* view_delegate_; |
| @@ -171,53 +173,6 @@ TileItemView* StartPageView::StartPageTilesContainer::GetTileItemView( |
| return search_result_tile_views_[index]; |
| } |
| -int StartPageView::StartPageTilesContainer::Update() { |
| - // Ignore updates and disable buttons when transitioning to a different |
| - // state. |
| - if (contents_view_->GetActiveState() != AppListModel::STATE_START) { |
| - for (auto* view : search_result_tile_views_) |
| - view->SetEnabled(false); |
| - |
| - return num_results(); |
| - } |
| - |
| - std::vector<SearchResult*> display_results = |
| - AppListModel::FilterSearchResultsByDisplayType( |
| - results(), SearchResult::DISPLAY_RECOMMENDATION, kNumStartPageTiles); |
| - if (display_results.size() != search_result_tile_views_.size()) { |
| - // We should recreate the grid layout in this case. |
| - for (size_t i = 0; i < search_result_tile_views_.size(); ++i) |
| - delete search_result_tile_views_[i]; |
| - search_result_tile_views_.clear(); |
| - RemoveChildView(all_apps_button_); |
| - CreateAppsGrid(std::min(kNumStartPageTiles, display_results.size())); |
| - } |
| - |
| - // Update the tile item results. |
| - for (size_t i = 0; i < search_result_tile_views_.size(); ++i) { |
| - SearchResult* item = nullptr; |
| - if (i < display_results.size()) |
| - item = display_results[i]; |
| - search_result_tile_views_[i]->SetSearchResult(item); |
| - search_result_tile_views_[i]->SetEnabled(true); |
| - } |
| - |
| - Layout(); |
| - parent()->Layout(); |
| - // Add 1 to the results size to account for the all apps button. |
| - return display_results.size() + 1; |
| -} |
| - |
| -void StartPageView::StartPageTilesContainer::UpdateSelectedIndex( |
| - int old_selected, |
| - int new_selected) { |
| - if (old_selected >= 0) |
| - GetTileItemView(old_selected)->SetSelected(false); |
| - |
| - if (new_selected >= 0) |
| - GetTileItemView(new_selected)->SetSelected(true); |
| -} |
| - |
| void StartPageView::StartPageTilesContainer::OnContainerSelected( |
| bool /*from_bottom*/, |
| bool /*directional_movement*/) { |
| @@ -269,6 +224,53 @@ void StartPageView::StartPageTilesContainer::CreateAppsGrid(int apps_num) { |
| AddChildView(all_apps_button_); |
| } |
| +int StartPageView::StartPageTilesContainer::DoUpdate() { |
| + // Ignore updates and disable buttons when transitioning to a different |
| + // state. |
| + if (contents_view_->GetActiveState() != AppListModel::STATE_START) { |
| + for (auto* view : search_result_tile_views_) |
| + view->SetEnabled(false); |
| + |
| + return num_results(); |
| + } |
| + |
| + std::vector<SearchResult*> display_results = |
| + AppListModel::FilterSearchResultsByDisplayType( |
| + results(), SearchResult::DISPLAY_RECOMMENDATION, kNumStartPageTiles); |
| + if (display_results.size() != search_result_tile_views_.size()) { |
| + // We should recreate the grid layout in this case. |
| + for (size_t i = 0; i < search_result_tile_views_.size(); ++i) |
| + delete search_result_tile_views_[i]; |
| + search_result_tile_views_.clear(); |
| + RemoveChildView(all_apps_button_); |
| + CreateAppsGrid(std::min(kNumStartPageTiles, display_results.size())); |
| + } |
| + |
| + // Update the tile item results. |
| + for (size_t i = 0; i < search_result_tile_views_.size(); ++i) { |
| + SearchResult* item = nullptr; |
| + if (i < display_results.size()) |
| + item = display_results[i]; |
| + search_result_tile_views_[i]->SetSearchResult(item); |
| + search_result_tile_views_[i]->SetEnabled(true); |
| + } |
| + |
| + Layout(); |
| + parent()->Layout(); |
| + // Add 1 to the results size to account for the all apps button. |
| + return display_results.size() + 1; |
| +} |
| + |
| +void StartPageView::StartPageTilesContainer::UpdateSelectedIndex( |
| + int old_selected, |
| + int new_selected) { |
| + if (old_selected >= 0 && old_selected < num_results()) |
| + GetTileItemView(old_selected)->SetSelected(false); |
| + |
| + if (new_selected >= 0 && new_selected < num_results()) |
| + GetTileItemView(new_selected)->SetSelected(true); |
| +} |
| + |
| //////////////////////////////////////////////////////////////////////////////// |
| // StartPageView implementation: |
| StartPageView::StartPageView(AppListMainView* app_list_main_view, |
| @@ -360,8 +362,8 @@ void StartPageView::OnShown() { |
| custom_page_view->SetVisible( |
| app_list_main_view_->ShouldShowCustomLauncherPage()); |
| } |
| - tiles_container_->Update(); |
| tiles_container_->ClearSelectedIndex(); |
| + tiles_container_->Update(); |
| custom_launcher_page_background_->SetSelected(false); |
| } |