Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: ui/app_list/views/app_list_folder_view.cc

Issue 302803002: Refactor app list so AppsGridView owns the PaginationModel. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix tests and bugs. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/app_list_folder_view.h" 5 #include "ui/app_list/views/app_list_folder_view.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "grit/ui_strings.h" 9 #include "grit/ui_strings.h"
10 #include "ui/accessibility/ax_view_state.h" 10 #include "ui/accessibility/ax_view_state.h"
11 #include "ui/app_list/app_list_constants.h" 11 #include "ui/app_list/app_list_constants.h"
12 #include "ui/app_list/app_list_folder_item.h" 12 #include "ui/app_list/app_list_folder_item.h"
13 #include "ui/app_list/app_list_model.h" 13 #include "ui/app_list/app_list_model.h"
14 #include "ui/app_list/pagination_model.h"
15 #include "ui/app_list/views/app_list_item_view.h" 14 #include "ui/app_list/views/app_list_item_view.h"
16 #include "ui/app_list/views/app_list_main_view.h" 15 #include "ui/app_list/views/app_list_main_view.h"
17 #include "ui/app_list/views/apps_container_view.h" 16 #include "ui/app_list/views/apps_container_view.h"
18 #include "ui/app_list/views/apps_grid_view.h" 17 #include "ui/app_list/views/apps_grid_view.h"
19 #include "ui/app_list/views/contents_view.h" 18 #include "ui/app_list/views/contents_view.h"
20 #include "ui/app_list/views/folder_background_view.h" 19 #include "ui/app_list/views/folder_background_view.h"
21 #include "ui/app_list/views/folder_header_view.h" 20 #include "ui/app_list/views/folder_header_view.h"
22 #include "ui/app_list/views/search_box_view.h" 21 #include "ui/app_list/views/search_box_view.h"
23 #include "ui/compositor/scoped_layer_animation_settings.h" 22 #include "ui/compositor/scoped_layer_animation_settings.h"
24 #include "ui/events/event.h" 23 #include "ui/events/event.h"
(...skipping 19 matching lines...) Expand all
44 43
45 AppListFolderView::AppListFolderView(AppsContainerView* container_view, 44 AppListFolderView::AppListFolderView(AppsContainerView* container_view,
46 AppListModel* model, 45 AppListModel* model,
47 AppListMainView* app_list_main_view) 46 AppListMainView* app_list_main_view)
48 : container_view_(container_view), 47 : container_view_(container_view),
49 app_list_main_view_(app_list_main_view), 48 app_list_main_view_(app_list_main_view),
50 folder_header_view_(new FolderHeaderView(this)), 49 folder_header_view_(new FolderHeaderView(this)),
51 view_model_(new views::ViewModel), 50 view_model_(new views::ViewModel),
52 model_(model), 51 model_(model),
53 folder_item_(NULL), 52 folder_item_(NULL),
54 pagination_model_(new PaginationModel),
55 hide_for_reparent_(false) { 53 hide_for_reparent_(false) {
56 AddChildView(folder_header_view_); 54 AddChildView(folder_header_view_);
57 view_model_->Add(folder_header_view_, kIndexFolderHeader); 55 view_model_->Add(folder_header_view_, kIndexFolderHeader);
58 56
59 items_grid_view_ = 57 items_grid_view_ = new AppsGridView(app_list_main_view_);
60 new AppsGridView(app_list_main_view_, pagination_model_.get());
61 items_grid_view_->set_folder_delegate(this); 58 items_grid_view_->set_folder_delegate(this);
62 items_grid_view_->SetLayout( 59 items_grid_view_->SetLayout(
63 kPreferredIconDimension, 60 kPreferredIconDimension,
64 container_view->apps_grid_view()->cols(), 61 container_view->apps_grid_view()->cols(),
65 container_view->apps_grid_view()->rows_per_page()); 62 container_view->apps_grid_view()->rows_per_page());
66 items_grid_view_->SetModel(model); 63 items_grid_view_->SetModel(model);
67 AddChildView(items_grid_view_); 64 AddChildView(items_grid_view_);
68 view_model_->Add(items_grid_view_, kIndexChildItems); 65 view_model_->Add(items_grid_view_, kIndexChildItems);
69 66
70 #if defined(USE_AURA) 67 #if defined(USE_AURA)
71 SetPaintToLayer(true); 68 SetPaintToLayer(true);
72 SetFillsBoundsOpaquely(false); 69 SetFillsBoundsOpaquely(false);
73 #endif 70 #endif
74 71
75 model_->AddObserver(this); 72 model_->AddObserver(this);
76 } 73 }
77 74
78 AppListFolderView::~AppListFolderView() { 75 AppListFolderView::~AppListFolderView() {
79 model_->RemoveObserver(this); 76 model_->RemoveObserver(this);
80 // Make sure |items_grid_view_| is deleted before |pagination_model_|.
81 RemoveAllChildViews(true);
82 } 77 }
83 78
84 void AppListFolderView::SetAppListFolderItem(AppListFolderItem* folder) { 79 void AppListFolderView::SetAppListFolderItem(AppListFolderItem* folder) {
85 accessible_name_ = ui::ResourceBundle::GetSharedInstance().GetLocalizedString( 80 accessible_name_ = ui::ResourceBundle::GetSharedInstance().GetLocalizedString(
86 IDS_APP_LIST_FOLDER_OPEN_FOLDER_ACCESSIBILE_NAME); 81 IDS_APP_LIST_FOLDER_OPEN_FOLDER_ACCESSIBILE_NAME);
87 NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true); 82 NotifyAccessibilityEvent(ui::AX_EVENT_ALERT, true);
88 83
89 folder_item_ = folder; 84 folder_item_ = folder;
90 items_grid_view_->SetItemList(folder_item_->item_list()); 85 items_grid_view_->SetItemList(folder_item_->item_list());
91 folder_header_view_->SetFolderItem(folder_item_); 86 folder_header_view_->SetFolderItem(folder_item_);
(...skipping 228 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 void AppListFolderView::GiveBackFocusToSearchBox() { 315 void AppListFolderView::GiveBackFocusToSearchBox() {
321 app_list_main_view_->search_box_view()->search_box()->RequestFocus(); 316 app_list_main_view_->search_box_view()->search_box()->RequestFocus();
322 } 317 }
323 318
324 void AppListFolderView::SetItemName(AppListFolderItem* item, 319 void AppListFolderView::SetItemName(AppListFolderItem* item,
325 const std::string& name) { 320 const std::string& name) {
326 model_->SetItemName(item, name); 321 model_->SetItemName(item, name);
327 } 322 }
328 323
329 } // namespace app_list 324 } // namespace app_list
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698