| Index: chrome/browser/ui/app_list/extension_app_model_builder.cc
|
| diff --git a/chrome/browser/ui/app_list/extension_app_model_builder.cc b/chrome/browser/ui/app_list/extension_app_model_builder.cc
|
| index 767bb7b7f2ed10f74577dcc0877f3675b88f544a..1f17f6d6d6e57d2a05263034ef1582e481badfd5 100644
|
| --- a/chrome/browser/ui/app_list/extension_app_model_builder.cc
|
| +++ b/chrome/browser/ui/app_list/extension_app_model_builder.cc
|
| @@ -48,11 +48,13 @@ ExtensionAppModelBuilder::ExtensionAppModelBuilder(
|
| model_(model),
|
| highlighted_app_pending_(false),
|
| tracker_(NULL) {
|
| + model_->apps()->AddObserver(this);
|
| SwitchProfile(profile); // Builds the model.
|
| }
|
|
|
| ExtensionAppModelBuilder::~ExtensionAppModelBuilder() {
|
| OnShutdown();
|
| + model_->apps()->RemoveObserver(this);
|
| }
|
|
|
| void ExtensionAppModelBuilder::OnBeginExtensionInstall(
|
| @@ -239,3 +241,40 @@ void ExtensionAppModelBuilder::UpdateHighlight() {
|
| item->SetHighlighted(true);
|
| highlighted_app_pending_ = false;
|
| }
|
| +
|
| +void ExtensionAppModelBuilder::ListItemsAdded(size_t start, size_t count) {
|
| +}
|
| +
|
| +void ExtensionAppModelBuilder::ListItemsRemoved(size_t start, size_t count) {
|
| +}
|
| +
|
| +void ExtensionAppModelBuilder::ListItemMoved(size_t index,
|
| + size_t target_index) {
|
| + app_list::AppListModel::Apps* app_list = model_->apps();
|
| + app_list::AppListItemModel* item = app_list->GetItemAt(target_index);
|
| + if (item->GetAppType() != ExtensionAppItem::kAppType)
|
| + return;
|
| +
|
| + ExtensionAppItem* prev = NULL;
|
| + for (size_t idx = target_index; idx > 1; --idx) {
|
| + app_list::AppListItemModel* item = app_list->GetItemAt(idx - 1);
|
| + if (item->GetAppType() == ExtensionAppItem::kAppType) {
|
| + prev = static_cast<ExtensionAppItem*>(item);
|
| + break;
|
| + }
|
| + }
|
| + ExtensionAppItem* next = NULL;
|
| + for (size_t idx = target_index; idx < app_list->item_count() - 1; ++idx) {
|
| + app_list::AppListItemModel* item = app_list->GetItemAt(idx + 1);
|
| + if (item->GetAppType() == ExtensionAppItem::kAppType) {
|
| + next = static_cast<ExtensionAppItem*>(item);
|
| + break;
|
| + }
|
| + }
|
| + if (prev || next)
|
| + static_cast<ExtensionAppItem*>(item)->Move(prev, next);
|
| +}
|
| +
|
| +void ExtensionAppModelBuilder::ListItemsChanged(size_t start, size_t count) {
|
| + NOTREACHED();
|
| +}
|
|
|