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

Unified Diff: chrome/browser/ui/app_list/apps_model_builder.cc

Issue 25859005: Elim ActivateAppListItem, ChromeAppListItem (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix static cast in AppModelBuilder, add AppType Created 7 years, 2 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/app_list/apps_model_builder.cc
diff --git a/chrome/browser/ui/app_list/apps_model_builder.cc b/chrome/browser/ui/app_list/apps_model_builder.cc
index 30022cd3a62ccacf3ce438962fd5531d9e2ee6a2..544f8262e0971d68d8e2d1958d28ce2919a1f17f 100644
--- a/chrome/browser/ui/app_list/apps_model_builder.cc
+++ b/chrome/browser/ui/app_list/apps_model_builder.cc
@@ -24,10 +24,15 @@
#include "ui/gfx/image/image_skia.h"
using extensions::Extension;
+using app_list::AppListItemModel;
namespace {
bool AppPrecedes(const ExtensionAppItem* app1, const ExtensionAppItem* app2) {
+ if (!app1)
+ return app2; // non-ExtensionAppItem follows ExtensionAppItem
+ if (!app2)
+ return true; // ExtensionAppItem preceeds non-ExtensionAppItem
jennyz 2013/10/03 20:45:51 Do you mean we should pass null for non-ExtensionA
const syncer::StringOrdinal& page1 = app1->GetPageOrdinal();
const syncer::StringOrdinal& page2 = app2->GetPageOrdinal();
if (page1.LessThan(page2))
@@ -108,7 +113,7 @@ void AppsModelBuilder::OnExtensionLoaded(const Extension* extension) {
const int existing_index = FindApp(extension->id());
if (existing_index != -1) {
- GetAppAt(existing_index)->Reload();
+ GetAppAt(existing_index)->Update();
return;
}
@@ -125,7 +130,7 @@ void AppsModelBuilder::OnExtensionUnloaded(const Extension* extension) {
int index = FindApp(extension->id());
if (index < 0)
return;
- GetAppAt(index)->UpdateIcon();
+ GetAppAt(index)->Update();
}
void AppsModelBuilder::OnExtensionUninstalled(const Extension* extension) {
@@ -151,7 +156,8 @@ void AppsModelBuilder::OnShutdown() {
}
}
-void AppsModelBuilder::AddApps(const ExtensionSet* extensions, Apps* apps) {
+void AppsModelBuilder::AddApps(const ExtensionSet* extensions,
+ ExtensionApps* apps) {
for (ExtensionSet::const_iterator app = extensions->begin();
app != extensions->end(); ++app) {
if (ShouldDisplayInAppLauncher(profile_, *app))
@@ -190,7 +196,7 @@ void AppsModelBuilder::PopulateApps() {
if (!service)
return;
- Apps apps;
+ ExtensionApps apps;
AddApps(service->extensions(), &apps);
AddApps(service->disabled_extensions(), &apps);
AddApps(service->terminated_extensions(), &apps);
@@ -211,10 +217,10 @@ void AppsModelBuilder::ResortApps() {
// terminated app case, where there is no unload notification and uninstall
// notification comes in after the app's ordinals are cleared.
// See http://crbug.com/256749.
- Apps apps;
- Apps invalid_ordinal_apps;
+ ExtensionApps apps;
+ ExtensionApps invalid_ordinal_apps;
for (size_t i = 0; i < model_->item_count(); ++i) {
- ExtensionAppItem* app = GetAppAt(i);
+ ExtensionAppItem* app = GetExtensionAppAt(i);
if (app->GetPageOrdinal().IsValid() && app->GetAppLaunchOrdinal().IsValid())
apps.push_back(app);
else
@@ -249,7 +255,7 @@ void AppsModelBuilder::InsertApp(ExtensionAppItem* app) {
while (start < end) {
size_t mid = (start + end) / 2;
- if (AppPrecedes(GetAppAt(mid), app))
+ if (AppPrecedes(GetExtensionAppAt(mid), app))
start = mid + 1;
else
end = mid;
@@ -261,7 +267,7 @@ int AppsModelBuilder::FindApp(const std::string& app_id) {
DCHECK(model_);
for (size_t i = 0; i < model_->item_count(); ++i) {
- if (GetAppAt(i)->extension_id() == app_id)
+ if (GetAppAt(i)->app_id() == app_id)
return i;
}
@@ -271,17 +277,17 @@ int AppsModelBuilder::FindApp(const std::string& app_id) {
void AppsModelBuilder::SetHighlightedApp(const std::string& extension_id) {
if (extension_id == highlight_app_id_)
return;
- ExtensionAppItem* old_app = GetApp(highlight_app_id_);
+ AppListItemModel* old_app = GetApp(highlight_app_id_);
if (old_app)
old_app->SetHighlighted(false);
highlight_app_id_ = extension_id;
- ExtensionAppItem* new_app = GetApp(highlight_app_id_);
+ AppListItemModel* new_app = GetApp(highlight_app_id_);
highlighted_app_pending_ = !new_app;
if (new_app)
new_app->SetHighlighted(true);
}
-ExtensionAppItem* AppsModelBuilder::GetApp(
+AppListItemModel* AppsModelBuilder::GetApp(
const std::string& extension_id) {
DCHECK(model_);
if (extension_id.empty())
@@ -306,13 +312,16 @@ void AppsModelBuilder::UpdateHighlight() {
highlighted_app_pending_ = false;
}
-ExtensionAppItem* AppsModelBuilder::GetAppAt(size_t index) {
+AppListItemModel* AppsModelBuilder::GetAppAt(size_t index) {
DCHECK_LT(index, model_->item_count());
- ChromeAppListItem* item =
- static_cast<ChromeAppListItem*>(model_->GetItemAt(index));
- DCHECK_EQ(item->type(), ChromeAppListItem::TYPE_APP);
+ return model_->GetItemAt(index);
+}
- return static_cast<ExtensionAppItem*>(item);
+ExtensionAppItem* AppsModelBuilder::GetExtensionAppAt(size_t index) {
+ AppListItemModel* app = GetAppAt(index);
+ if (app->AppType() != ExtensionAppItem::ExtensionAppType())
+ return NULL;
+ return static_cast<ExtensionAppItem*>(app);
}
void AppsModelBuilder::ListItemsAdded(size_t start, size_t count) {
@@ -325,10 +334,12 @@ void AppsModelBuilder::ListItemMoved(size_t index, size_t target_index) {
if (ignore_changes_)
return;
- ExtensionAppItem* prev = target_index > 0 ? GetAppAt(target_index - 1) : NULL;
+ ExtensionAppItem* prev = target_index > 0 ?
+ GetExtensionAppAt(target_index - 1) : NULL;
ExtensionAppItem* next = target_index + 1 < model_->item_count() ?
- GetAppAt(target_index + 1) : NULL;
- GetAppAt(target_index)->Move(prev, next);
+ GetExtensionAppAt(target_index + 1) : NULL;
+ ExtensionAppItem* target_app = GetExtensionAppAt(target_index);
+ target_app->Move(prev, next);
}
void AppsModelBuilder::ListItemsChanged(size_t start, size_t count) {

Powered by Google App Engine
This is Rietveld 408576698