OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/app_list/app_list_model.h" | 5 #include "ui/app_list/app_list_model.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "ui/app_list/app_list_folder_item.h" | 9 #include "ui/app_list/app_list_folder_item.h" |
10 #include "ui/app_list/app_list_item.h" | 10 #include "ui/app_list/app_list_item.h" |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
227 AppListItem* item = FindItem(id); | 227 AppListItem* item = FindItem(id); |
228 if (!item) | 228 if (!item) |
229 return; | 229 return; |
230 if (!item->IsInFolder()) { | 230 if (!item->IsInFolder()) { |
231 DCHECK_EQ(0u, item->ChildItemCount()) | 231 DCHECK_EQ(0u, item->ChildItemCount()) |
232 << "Invalid call to DeleteItem for item with children: " << id; | 232 << "Invalid call to DeleteItem for item with children: " << id; |
233 FOR_EACH_OBSERVER(AppListModelObserver, | 233 FOR_EACH_OBSERVER(AppListModelObserver, |
234 observers_, | 234 observers_, |
235 OnAppListItemWillBeDeleted(item)); | 235 OnAppListItemWillBeDeleted(item)); |
236 top_level_item_list_->DeleteItem(id); | 236 top_level_item_list_->DeleteItem(id); |
| 237 FOR_EACH_OBSERVER(AppListModelObserver, observers_, OnAppListItemDeleted()); |
237 return; | 238 return; |
238 } | 239 } |
239 AppListFolderItem* folder = FindFolderItem(item->folder_id()); | 240 AppListFolderItem* folder = FindFolderItem(item->folder_id()); |
240 DCHECK(folder) << "Folder not found for item: " << item->ToDebugString(); | 241 DCHECK(folder) << "Folder not found for item: " << item->ToDebugString(); |
241 scoped_ptr<AppListItem> child_item = RemoveItemFromFolder(folder, item); | 242 scoped_ptr<AppListItem> child_item = RemoveItemFromFolder(folder, item); |
242 DCHECK_EQ(item, child_item.get()); | 243 DCHECK_EQ(item, child_item.get()); |
243 FOR_EACH_OBSERVER(AppListModelObserver, | 244 FOR_EACH_OBSERVER(AppListModelObserver, |
244 observers_, | 245 observers_, |
245 OnAppListItemWillBeDeleted(item)); | 246 OnAppListItemWillBeDeleted(item)); |
246 child_item.reset(); // Deletes item. | 247 child_item.reset(); // Deletes item. |
| 248 FOR_EACH_OBSERVER(AppListModelObserver, observers_, OnAppListItemDeleted()); |
247 } | 249 } |
248 | 250 |
249 void AppListModel::NotifyExtensionPreferenceChanged() { | 251 void AppListModel::NotifyExtensionPreferenceChanged() { |
250 for (size_t i = 0; i < top_level_item_list_->item_count(); ++i) | 252 for (size_t i = 0; i < top_level_item_list_->item_count(); ++i) |
251 top_level_item_list_->item_at(i)->OnExtensionPreferenceChanged(); | 253 top_level_item_list_->item_at(i)->OnExtensionPreferenceChanged(); |
252 } | 254 } |
253 | 255 |
254 // Private methods | 256 // Private methods |
255 | 257 |
256 void AppListModel::OnListItemMoved(size_t from_index, | 258 void AppListModel::OnListItemMoved(size_t from_index, |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
327 scoped_ptr<AppListItem> result = folder->item_list()->RemoveItem(item->id()); | 329 scoped_ptr<AppListItem> result = folder->item_list()->RemoveItem(item->id()); |
328 result->set_folder_id(""); | 330 result->set_folder_id(""); |
329 if (folder->item_list()->item_count() == 0) { | 331 if (folder->item_list()->item_count() == 0) { |
330 DVLOG(2) << "Deleting empty folder: " << folder->ToDebugString(); | 332 DVLOG(2) << "Deleting empty folder: " << folder->ToDebugString(); |
331 DeleteItem(folder_id); | 333 DeleteItem(folder_id); |
332 } | 334 } |
333 return result.Pass(); | 335 return result.Pass(); |
334 } | 336 } |
335 | 337 |
336 } // namespace app_list | 338 } // namespace app_list |
OLD | NEW |