Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / app_list / fast_show_pickler.cc
index d9568b8..c121ded 100644 (file)
@@ -185,6 +185,7 @@ bool PickleAppListItem(Pickle* pickle, AppListItem* item) {
 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
@@ -208,12 +209,12 @@ scoped_ptr<Pickle> FastShowPickler::PickleAppListModelForFastShow(
 }
 
 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());
   }
 }
 
@@ -234,7 +235,8 @@ FastShowPickler::UnpickleAppListModelForFastShow(Pickle* pickle) {
     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();