| OLD | NEW |
| (Empty) |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #ifndef COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ | |
| 6 #define COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ | |
| 7 | |
| 8 #include <set> | |
| 9 | |
| 10 class BookmarkModel; | |
| 11 class BookmarkNode; | |
| 12 class GURL; | |
| 13 | |
| 14 // Observer for the BookmarkModel. | |
| 15 class BookmarkModelObserver { | |
| 16 public: | |
| 17 // Invoked when the model has finished loading. |ids_reassigned| mirrors | |
| 18 // that of BookmarkLoadDetails::ids_reassigned. See it for details. | |
| 19 virtual void BookmarkModelLoaded(BookmarkModel* model, | |
| 20 bool ids_reassigned) = 0; | |
| 21 | |
| 22 // Invoked from the destructor of the BookmarkModel. | |
| 23 virtual void BookmarkModelBeingDeleted(BookmarkModel* model) {} | |
| 24 | |
| 25 // Invoked when a node has moved. | |
| 26 virtual void BookmarkNodeMoved(BookmarkModel* model, | |
| 27 const BookmarkNode* old_parent, | |
| 28 int old_index, | |
| 29 const BookmarkNode* new_parent, | |
| 30 int new_index) = 0; | |
| 31 | |
| 32 // Invoked when a node has been added. | |
| 33 virtual void BookmarkNodeAdded(BookmarkModel* model, | |
| 34 const BookmarkNode* parent, | |
| 35 int index) = 0; | |
| 36 | |
| 37 // Invoked before a node is removed. | |
| 38 // |parent| the parent of the node that will be removed. | |
| 39 // |old_index| the index of the node about to be removed in |parent|. | |
| 40 // |node| is the node to be removed. | |
| 41 virtual void OnWillRemoveBookmarks(BookmarkModel* model, | |
| 42 const BookmarkNode* parent, | |
| 43 int old_index, | |
| 44 const BookmarkNode* node) {} | |
| 45 | |
| 46 // Invoked when a node has been removed, the item may still be starred though. | |
| 47 // |parent| the parent of the node that was removed. | |
| 48 // |old_index| the index of the removed node in |parent| before it was | |
| 49 // removed. | |
| 50 // |node| is the node that was removed. | |
| 51 // |removed_urls| is populated with the urls which no longer have any | |
| 52 // bookmarks associated with them. | |
| 53 virtual void BookmarkNodeRemoved(BookmarkModel* model, | |
| 54 const BookmarkNode* parent, | |
| 55 int old_index, | |
| 56 const BookmarkNode* node, | |
| 57 const std::set<GURL>& removed_urls) = 0; | |
| 58 | |
| 59 // Invoked before the title or url of a node is changed. | |
| 60 virtual void OnWillChangeBookmarkNode(BookmarkModel* model, | |
| 61 const BookmarkNode* node) {} | |
| 62 | |
| 63 // Invoked when the title or url of a node changes. | |
| 64 virtual void BookmarkNodeChanged(BookmarkModel* model, | |
| 65 const BookmarkNode* node) = 0; | |
| 66 | |
| 67 // Invoked before the metainfo of a node is changed. | |
| 68 virtual void OnWillChangeBookmarkMetaInfo(BookmarkModel* model, | |
| 69 const BookmarkNode* node) {} | |
| 70 | |
| 71 // Invoked when the metainfo on a node changes. | |
| 72 virtual void BookmarkMetaInfoChanged(BookmarkModel* model, | |
| 73 const BookmarkNode* node) {} | |
| 74 | |
| 75 // Invoked when a favicon has been loaded or changed. | |
| 76 virtual void BookmarkNodeFaviconChanged(BookmarkModel* model, | |
| 77 const BookmarkNode* node) = 0; | |
| 78 | |
| 79 // Invoked before the direct children of |node| have been reordered in some | |
| 80 // way, such as sorted. | |
| 81 virtual void OnWillReorderBookmarkNode(BookmarkModel* model, | |
| 82 const BookmarkNode* node) {} | |
| 83 | |
| 84 // Invoked when the children (just direct children, not descendants) of | |
| 85 // |node| have been reordered in some way, such as sorted. | |
| 86 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, | |
| 87 const BookmarkNode* node) = 0; | |
| 88 | |
| 89 // Invoked before an extensive set of model changes is about to begin. | |
| 90 // This tells UI intensive observers to wait until the updates finish to | |
| 91 // update themselves. | |
| 92 // These methods should only be used for imports and sync. | |
| 93 // Observers should still respond to BookmarkNodeRemoved immediately, | |
| 94 // to avoid holding onto stale node pointers. | |
| 95 virtual void ExtensiveBookmarkChangesBeginning(BookmarkModel* model) {} | |
| 96 | |
| 97 // Invoked after an extensive set of model changes has ended. | |
| 98 // This tells observers to update themselves if they were waiting for the | |
| 99 // update to finish. | |
| 100 virtual void ExtensiveBookmarkChangesEnded(BookmarkModel* model) {} | |
| 101 | |
| 102 // Invoked before all non-permanent bookmark nodes are removed. | |
| 103 virtual void OnWillRemoveAllBookmarks(BookmarkModel* model) {} | |
| 104 | |
| 105 // Invoked when all non-permanent bookmark nodes have been removed. | |
| 106 // |removed_urls| is populated with the urls which no longer have any | |
| 107 // bookmarks associated with them. | |
| 108 virtual void BookmarkAllNodesRemoved(BookmarkModel* model, | |
| 109 const std::set<GURL>& removed_urls) = 0; | |
| 110 | |
| 111 // Invoked before a set of model changes that is initiated by a single user | |
| 112 // action. For example, this is called a single time when pasting from the | |
| 113 // clipboard before each pasted bookmark is added to the bookmark model. | |
| 114 virtual void GroupedBookmarkChangesBeginning(BookmarkModel* model) {} | |
| 115 | |
| 116 // Invoked after a set of model changes triggered by a single user action has | |
| 117 // ended. | |
| 118 virtual void GroupedBookmarkChangesEnded(BookmarkModel* model) {} | |
| 119 | |
| 120 protected: | |
| 121 virtual ~BookmarkModelObserver() {} | |
| 122 }; | |
| 123 | |
| 124 #endif // COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ | |
| OLD | NEW |