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

Unified Diff: chrome/browser/ui/views/aura/app_list/app_list_model_builder.cc

Issue 9479031: aura: Implement new app list mock. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix compilation error Created 8 years, 10 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/aura/app_list/app_list_model_builder.cc
diff --git a/chrome/browser/ui/views/aura/app_list/app_list_model_builder.cc b/chrome/browser/ui/views/aura/app_list/app_list_model_builder.cc
index 6bd1ef1806f046e065f8b1ef4b21f2636130cd84..9b98a6398603729bab429426e86780d29c86c2d5 100644
--- a/chrome/browser/ui/views/aura/app_list/app_list_model_builder.cc
+++ b/chrome/browser/ui/views/aura/app_list/app_list_model_builder.cc
@@ -4,7 +4,6 @@
#include "chrome/browser/ui/views/aura/app_list/app_list_model_builder.h"
-#include "ash/app_list/app_list_item_group_model.h"
#include "chrome/app/chrome_command_ids.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/prefs/pref_service.h"
@@ -22,32 +21,10 @@
namespace {
-// Gets or creates group for given |extension| in |model|. The created group
-// is added to |model| and owned by it.
-ash::AppListItemGroupModel* GetOrCreateGroup(
- int page_index,
- const ListValue* app_page_names,
- ash::AppListModel* model) {
- if (page_index >= model->group_count()) {
- for (int i = model->group_count(); i <= page_index; ++i) {
- std::string title;
- if (!app_page_names->GetString(i, &title))
- title = l10n_util::GetStringUTF8(IDS_APP_DEFAULT_PAGE_NAME);
-
- ash::AppListItemGroupModel* group =
- new ash::AppListItemGroupModel(title);
- model->AddGroup(group);
- }
- }
-
- return model->GetGroup(page_index);
-}
-
-// Binary predict to sort extension apps. Smaller launch ordinal takes
-// precedence.
-bool ExtensionAppPrecedes(const ExtensionAppItem* a,
- const ExtensionAppItem* b) {
- return a->launch_ordinal().LessThan(b->launch_ordinal());
+// Binary predict to sort app list items alphabetically.
+bool AppPrecedes(const ash::AppListItemModel* a,
+ const ash::AppListItemModel* b) {
+ return a->title() < b->title();
}
} // namespace
@@ -62,59 +39,43 @@ AppListModelBuilder::~AppListModelBuilder() {
}
void AppListModelBuilder::Build() {
- GetExtensionApps();
- GetBrowserCommands();
+ Items items;
+
+ GetExtensionApps(&items);
+ GetBrowserCommands(&items);
+
+ std::sort(items.begin(), items.end(), &AppPrecedes);
+ for (Items::const_iterator it = items.begin(); it != items.end(); ++it) {
+ model_->AddItem(*it);
+ }
}
-void AppListModelBuilder::GetExtensionApps() {
+void AppListModelBuilder::GetExtensionApps(Items* items) {
DCHECK(profile_);
ExtensionService* service = profile_->GetExtensionService();
if (!service)
return;
// Get extension apps.
- std::vector<ExtensionAppItem*> items;
const ExtensionSet* extensions = service->extensions();
for (ExtensionSet::const_iterator app = extensions->begin();
app != extensions->end(); ++app) {
if ((*app)->ShouldDisplayInLauncher())
- items.push_back(new ExtensionAppItem(profile_, *app));
- }
-
- // Sort by launch ordinal.
- std::sort(items.begin(), items.end(), &ExtensionAppPrecedes);
-
- // Put all items into model and group them by page ordinal.
- PrefService* prefs = profile_->GetPrefs();
- const ListValue* app_page_names = prefs->GetList(prefs::kNtpAppPageNames);
- for (size_t i = 0; i < items.size(); ++i) {
- ExtensionAppItem* item = items[i];
-
- ash::AppListItemGroupModel* group = GetOrCreateGroup(
- item->page_index(),
- app_page_names,
- model_);
-
- group->AddItem(item);
+ items->push_back(new ExtensionAppItem(profile_, *app));
}
}
-void AppListModelBuilder::GetBrowserCommands() {
+void AppListModelBuilder::GetBrowserCommands(Items* items) {
Browser* browser = BrowserList::GetLastActiveWithProfile(profile_);
if (!browser)
return;
- // Uses the first group to put browser commands
- if (model_->group_count() == 0)
- model_->AddGroup(new ash::AppListItemGroupModel(""));
- ash::AppListItemGroupModel* group = model_->GetGroup(0);
-
- group->AddItem(new BrowserCommandItem(browser,
- IDC_NEW_INCOGNITO_WINDOW,
- IDS_APP_LIST_INCOGNITO,
- IDR_APP_LIST_INCOGNITO));
- group->AddItem(new BrowserCommandItem(browser,
- IDC_OPTIONS,
- IDS_APP_LIST_SETTINGS,
- IDR_APP_LIST_SETTINGS));
+ items->push_back(new BrowserCommandItem(browser,
+ IDC_NEW_INCOGNITO_WINDOW,
+ IDS_APP_LIST_INCOGNITO,
+ IDR_APP_LIST_INCOGNITO));
+ items->push_back(new BrowserCommandItem(browser,
+ IDC_OPTIONS,
+ IDS_APP_LIST_SETTINGS,
+ IDR_APP_LIST_SETTINGS));
}

Powered by Google App Engine
This is Rietveld 408576698