void CopyOverItem(AppListItem* src_item, AppListItem* dest_item) {
dest_item->SetTitleAndFullName(src_item->title(), src_item->full_name());
dest_item->SetIcon(src_item->icon(), src_item->has_shadow());
+ // Do not set folder_id, pass that to AppListModel::AddItemToFolder() instead.
}
} // namespace
}
void FastShowPickler::CopyOver(AppListModel* src, AppListModel* dest) {
- dest->item_list()->DeleteItemsByType(NULL /* all items */);
+ DCHECK_EQ(0u, dest->item_list()->item_count());
for (size_t i = 0; i < src->item_list()->item_count(); i++) {
AppListItem* src_item = src->item_list()->item_at(i);
- AppListItem* dest_item = new AppListItem(src_item->id());
- CopyOverItem(src_item, dest_item);
- dest->item_list()->AddItem(dest_item);
+ scoped_ptr<AppListItem> dest_item(new AppListItem(src_item->id()));
+ CopyOverItem(src_item, dest_item.get());
+ dest->AddItemToFolder(dest_item.Pass(), src_item->folder_id());
}
}
scoped_ptr<AppListItem> item(UnpickleAppListItem(&it).Pass());
if (!item)
return scoped_ptr<AppListModel>();
- model->item_list()->AddItem(item.release());
+ std::string folder_id = item->folder_id();
+ model->AddItemToFolder(item.Pass(), folder_id);
}
return model.Pass();