From 07feb4753f0b0459e7c2669054ccb9384062261c Mon Sep 17 00:00:00 2001 From: calamity Date: Thu, 5 Feb 2015 22:00:01 -0800 Subject: [PATCH] Remove separate SearchResultListView from ContentsView. This CL consolidates the SearchResultListView creation in ContentsView into a single flow used by the classic and experimental app list. They now both use SearchResultPageView with a SearchResultListView inside. This change is being made to facilitate further refactoring. BUG=455059 Review URL: https://codereview.chromium.org/896633005 Cr-Commit-Position: refs/heads/master@{#314984} --- ui/app_list/views/app_list_view_unittest.cc | 10 ++----- ui/app_list/views/contents_view.cc | 44 +++++++--------------------- ui/app_list/views/contents_view.h | 8 +---- ui/app_list/views/search_result_page_view.cc | 17 ++++++++--- 4 files changed, 27 insertions(+), 52 deletions(-) diff --git a/ui/app_list/views/app_list_view_unittest.cc b/ui/app_list/views/app_list_view_unittest.cc index 73f45442eb45..c825d64f1c5f 100644 --- a/ui/app_list/views/app_list_view_unittest.cc +++ b/ui/app_list/views/app_list_view_unittest.cc @@ -25,7 +25,6 @@ #include "ui/app_list/views/apps_grid_view.h" #include "ui/app_list/views/contents_view.h" #include "ui/app_list/views/search_box_view.h" -#include "ui/app_list/views/search_result_list_view.h" #include "ui/app_list/views/search_result_page_view.h" #include "ui/app_list/views/search_result_tile_item_view.h" #include "ui/app_list/views/start_page_view.h" @@ -606,13 +605,8 @@ void AppListViewTestContext::RunSearchResultsTest() { contents_view->GetDefaultContentsBounds(); EXPECT_EQ(AppListModel::STATE_SEARCH_RESULTS, delegate_->GetTestModel()->state()); - if (test_type_ == EXPERIMENTAL) { - EXPECT_EQ(default_contents_bounds, - contents_view->search_results_page_view()->bounds()); - } else { - EXPECT_EQ(default_contents_bounds, - contents_view->search_results_list_view()->bounds()); - } + EXPECT_EQ(default_contents_bounds, + contents_view->search_results_page_view()->bounds()); // Hide the search results. contents_view->ShowSearchResults(false); diff --git a/ui/app_list/views/contents_view.cc b/ui/app_list/views/contents_view.cc index 3de10189dd14..985f9437f41b 100644 --- a/ui/app_list/views/contents_view.cc +++ b/ui/app_list/views/contents_view.cc @@ -31,7 +31,6 @@ namespace app_list { ContentsView::ContentsView(AppListMainView* app_list_main_view) : apps_container_view_(nullptr), - search_results_list_view_(nullptr), search_results_page_view_(nullptr), start_page_view_(nullptr), custom_page_view_(nullptr), @@ -73,26 +72,22 @@ void ContentsView::Init(AppListModel* model) { // Start page. start_page_view_ = new StartPageView(app_list_main_view_, view_delegate); AddLauncherPage(start_page_view_, AppListModel::STATE_START); + } - // Search results UI. - search_results_page_view_ = new SearchResultPageView(); + // Search results UI. + search_results_page_view_ = new SearchResultPageView(); - AppListModel::SearchResults* results = view_delegate->GetModel()->results(); - search_results_page_view_->AddSearchResultContainerView( - results, new SearchResultListView(app_list_main_view_, view_delegate)); + AppListModel::SearchResults* results = view_delegate->GetModel()->results(); + search_results_page_view_->AddSearchResultContainerView( + results, new SearchResultListView(app_list_main_view_, view_delegate)); + + if (app_list::switches::IsExperimentalAppListEnabled()) { search_results_page_view_->AddSearchResultContainerView( results, new SearchResultTileItemListView(GetSearchBoxView()->search_box())); - - AddLauncherPage(search_results_page_view_, - AppListModel::STATE_SEARCH_RESULTS); - } else { - search_results_list_view_ = - new SearchResultListView(app_list_main_view_, view_delegate); - AddLauncherPage(search_results_list_view_, - AppListModel::STATE_SEARCH_RESULTS); - search_results_list_view_->SetResults(model->results()); } + AddLauncherPage(search_results_page_view_, + AppListModel::STATE_SEARCH_RESULTS); apps_container_view_ = new AppsContainerView(app_list_main_view_, model); @@ -224,15 +219,6 @@ void ContentsView::ActivePageChanged() { app_list_main_view_->model()->ClearCustomLauncherPageSubpages(); } - // TODO(xiyuan): Highlight default match instead of the first. - if (state == AppListModel::STATE_SEARCH_RESULTS && - search_results_list_view_ && search_results_list_view_->visible()) { - search_results_list_view_->OnContainerSelected(false); - } - - if (search_results_list_view_) - search_results_list_view_->UpdateAutoLaunchState(); - if (custom_page_view_) { custom_page_view_->SetFocusable(state == AppListModel::STATE_CUSTOM_LAUNCHER_PAGE); @@ -442,15 +428,7 @@ bool ContentsView::Back() { } gfx::Size ContentsView::GetDefaultContentsSize() const { - const gfx::Size container_size = - apps_container_view_->apps_grid_view()->GetPreferredSize(); - const gfx::Size results_size = - search_results_list_view_ ? search_results_list_view_->GetPreferredSize() - : gfx::Size(); - - int width = std::max(container_size.width(), results_size.width()); - int height = std::max(container_size.height(), results_size.height()); - return gfx::Size(width, height); + return apps_container_view_->apps_grid_view()->GetPreferredSize(); } gfx::Size ContentsView::GetPreferredSize() const { diff --git a/ui/app_list/views/contents_view.h b/ui/app_list/views/contents_view.h index 1b7b0cb9f793..3d296d8d4f8b 100644 --- a/ui/app_list/views/contents_view.h +++ b/ui/app_list/views/contents_view.h @@ -34,7 +34,6 @@ class AppsContainerView; class ContentsAnimator; class PaginationModel; class SearchBoxView; -class SearchResultListView; class SearchResultPageView; class StartPageView; @@ -100,9 +99,6 @@ class APP_LIST_EXPORT ContentsView : public views::View, } StartPageView* start_page_view() const { return start_page_view_; } views::View* custom_page_view() const { return custom_page_view_; } - SearchResultListView* search_results_list_view() const { - return search_results_list_view_; - } SearchResultPageView* search_results_page_view() { return search_results_page_view_; } @@ -216,11 +212,9 @@ class APP_LIST_EXPORT ContentsView : public views::View, // Special sub views of the ContentsView. All owned by the views hierarchy. AppsContainerView* apps_container_view_; - // Only used in the normal app list. - SearchResultListView* search_results_list_view_; + SearchResultPageView* search_results_page_view_; // Only used in the experimental app list. - SearchResultPageView* search_results_page_view_; StartPageView* start_page_view_; views::View* custom_page_view_; diff --git a/ui/app_list/views/search_result_page_view.cc b/ui/app_list/views/search_result_page_view.cc index a923ba95139b..fca91384a5d1 100644 --- a/ui/app_list/views/search_result_page_view.cc +++ b/ui/app_list/views/search_result_page_view.cc @@ -5,6 +5,7 @@ #include "ui/app_list/views/search_result_page_view.h" #include "ui/app_list/app_list_constants.h" +#include "ui/app_list/app_list_switches.h" #include "ui/app_list/app_list_view_delegate.h" #include "ui/app_list/views/app_list_main_view.h" #include "ui/app_list/views/search_result_list_view.h" @@ -45,9 +46,13 @@ class SearchCardView : public views::View { } // namespace SearchResultPageView::SearchResultPageView() : selected_index_(0) { - SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical, - kExperimentalWindowPadding, kTopPadding, - kGroupSpacing)); + if (switches::IsExperimentalAppListEnabled()) { + SetLayoutManager(new views::BoxLayout(views::BoxLayout::kVertical, + kExperimentalWindowPadding, + kTopPadding, kGroupSpacing)); + } else { + SetLayoutManager(new views::FillLayout); + } } SearchResultPageView::~SearchResultPageView() { @@ -56,7 +61,11 @@ SearchResultPageView::~SearchResultPageView() { void SearchResultPageView::AddSearchResultContainerView( AppListModel::SearchResults* results_model, SearchResultContainerView* result_container) { - AddChildView(new SearchCardView(result_container)); + views::View* view_to_add = result_container; + if (switches::IsExperimentalAppListEnabled()) + view_to_add = new SearchCardView(result_container); + + AddChildView(view_to_add); result_container_views_.push_back(result_container); result_container->SetResults(results_model); } -- 2.11.4.GIT