OLD | NEW |
---|---|
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 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 #ifndef COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ | 5 #ifndef COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ |
6 #define COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ | 6 #define COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 | 9 |
10 class GURL; | 10 class GURL; |
11 | 11 |
12 namespace bookmarks { | 12 namespace bookmarks { |
13 | 13 |
14 class BookmarkModel; | 14 class BookmarkModel; |
15 class BookmarkNode; | 15 class BookmarkNode; |
16 | 16 |
17 // Observer for the BookmarkModel. | 17 // Observer for the BookmarkModel. |
18 class BookmarkModelObserver { | 18 class BookmarkModelObserver { |
19 public: | 19 public: |
20 // Invoked when the model has finished loading. |ids_reassigned| mirrors | 20 // Invoked when the model has finished loading. |ids_reassigned| mirrors |
21 // that of BookmarkLoadDetails::ids_reassigned. See it for details. | 21 // that of BookmarkLoadDetails::ids_reassigned. See it for details. |
22 virtual void BookmarkModelLoaded(BookmarkModel* model, | 22 virtual void BookmarkModelLoaded(BookmarkModel* model, |
23 bool ids_reassigned) = 0; | 23 bool ids_reassigned) {} |
24 | 24 |
25 // Invoked from the destructor of the BookmarkModel. | 25 // Invoked from the destructor of the BookmarkModel. |
26 virtual void BookmarkModelBeingDeleted(BookmarkModel* model) {} | 26 virtual void BookmarkModelBeingDeleted(BookmarkModel* model) {} |
27 | 27 |
28 // Invoked when a node has moved. | 28 // Invoked when a node has moved. |
29 virtual void BookmarkNodeMoved(BookmarkModel* model, | 29 virtual void BookmarkNodeMoved(BookmarkModel* model, |
30 const BookmarkNode* old_parent, | 30 const BookmarkNode* old_parent, |
31 int old_index, | 31 int old_index, |
32 const BookmarkNode* new_parent, | 32 const BookmarkNode* new_parent, |
33 int new_index) = 0; | 33 int new_index) {} |
34 | 34 |
35 // Invoked when a node has been added. | 35 // Invoked when a node has been added. |
36 virtual void BookmarkNodeAdded(BookmarkModel* model, | 36 virtual void BookmarkNodeAdded(BookmarkModel* model, |
37 const BookmarkNode* parent, | 37 const BookmarkNode* parent, |
38 int index) = 0; | 38 int index) {} |
39 | 39 |
40 // Invoked prior to removing a node from the model. When a node is removed | 40 // Invoked prior to removing a node from the model. When a node is removed |
41 // it's descendants are implicitly removed from the model as | 41 // it's descendants are implicitly removed from the model as |
42 // well. Notification is only sent for the node itself, not any | 42 // well. Notification is only sent for the node itself, not any |
43 // descendants. For example, if folder 'A' has the children 'A1' and 'A2', | 43 // descendants. For example, if folder 'A' has the children 'A1' and 'A2', |
44 // model->Remove('A') generates a single notification for 'A'; no notification | 44 // model->Remove('A') generates a single notification for 'A'; no notification |
45 // is sent for 'A1' or 'A2'. | 45 // is sent for 'A1' or 'A2'. |
46 // | 46 // |
47 // |parent| the parent of the node that will be removed. | 47 // |parent| the parent of the node that will be removed. |
48 // |old_index| the index of the node about to be removed in |parent|. | 48 // |old_index| the index of the node about to be removed in |parent|. |
(...skipping 12 matching lines...) Expand all Loading... | |
61 // |old_index| the index of the removed node in |parent| before it was | 61 // |old_index| the index of the removed node in |parent| before it was |
62 // removed. | 62 // removed. |
63 // |node| the node that was removed. | 63 // |node| the node that was removed. |
64 // |no_longer_bookmarked| contains the urls of any nodes that are no longer | 64 // |no_longer_bookmarked| contains the urls of any nodes that are no longer |
65 // bookmarked as a result of the removal. | 65 // bookmarked as a result of the removal. |
66 virtual void BookmarkNodeRemoved( | 66 virtual void BookmarkNodeRemoved( |
67 BookmarkModel* model, | 67 BookmarkModel* model, |
68 const BookmarkNode* parent, | 68 const BookmarkNode* parent, |
69 int old_index, | 69 int old_index, |
70 const BookmarkNode* node, | 70 const BookmarkNode* node, |
71 const std::set<GURL>& no_longer_bookmarked) = 0; | 71 const std::set<GURL>& no_longer_bookmarked) {} |
72 | 72 |
73 // Invoked before the title or url of a node is changed. | 73 // Invoked before the title or url of a node is changed. |
74 virtual void OnWillChangeBookmarkNode(BookmarkModel* model, | 74 virtual void OnWillChangeBookmarkNode(BookmarkModel* model, |
75 const BookmarkNode* node) {} | 75 const BookmarkNode* node) {} |
76 | 76 |
77 // Invoked when the title or url of a node changes. | 77 // Invoked when the title or url of a node changes. |
78 virtual void BookmarkNodeChanged(BookmarkModel* model, | 78 virtual void BookmarkNodeChanged(BookmarkModel* model, |
79 const BookmarkNode* node) = 0; | 79 const BookmarkNode* node) {} |
80 | 80 |
81 // Invoked before the metainfo of a node is changed. | 81 // Invoked before the metainfo of a node is changed. |
82 virtual void OnWillChangeBookmarkMetaInfo(BookmarkModel* model, | 82 virtual void OnWillChangeBookmarkMetaInfo(BookmarkModel* model, |
83 const BookmarkNode* node) {} | 83 const BookmarkNode* node) {} |
84 | 84 |
85 // Invoked when the metainfo on a node changes. | 85 // Invoked when the metainfo on a node changes. |
86 virtual void BookmarkMetaInfoChanged(BookmarkModel* model, | 86 virtual void BookmarkMetaInfoChanged(BookmarkModel* model, |
87 const BookmarkNode* node) {} | 87 const BookmarkNode* node) {} |
88 | 88 |
89 // Invoked when a favicon has been loaded or changed. | 89 // Invoked when a favicon has been loaded or changed. |
90 virtual void BookmarkNodeFaviconChanged(BookmarkModel* model, | 90 virtual void BookmarkNodeFaviconChanged(BookmarkModel* model, |
91 const BookmarkNode* node) = 0; | 91 const BookmarkNode* node) {} |
92 | 92 |
93 // Invoked before the direct children of |node| have been reordered in some | 93 // Invoked before the direct children of |node| have been reordered in some |
94 // way, such as sorted. | 94 // way, such as sorted. |
95 virtual void OnWillReorderBookmarkNode(BookmarkModel* model, | 95 virtual void OnWillReorderBookmarkNode(BookmarkModel* model, |
96 const BookmarkNode* node) {} | 96 const BookmarkNode* node) {} |
97 | 97 |
98 // Invoked when the children (just direct children, not descendants) of | 98 // Invoked when the children (just direct children, not descendants) of |
99 // |node| have been reordered in some way, such as sorted. | 99 // |node| have been reordered in some way, such as sorted. |
100 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, | 100 virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, |
101 const BookmarkNode* node) = 0; | 101 const BookmarkNode* node) {} |
102 | 102 |
103 // Invoked before an extensive set of model changes is about to begin. | 103 // Invoked before an extensive set of model changes is about to begin. |
104 // This tells UI intensive observers to wait until the updates finish to | 104 // This tells UI intensive observers to wait until the updates finish to |
105 // update themselves. | 105 // update themselves. |
106 // These methods should only be used for imports and sync. | 106 // These methods should only be used for imports and sync. |
107 // Observers should still respond to BookmarkNodeRemoved immediately, | 107 // Observers should still respond to BookmarkNodeRemoved immediately, |
108 // to avoid holding onto stale node pointers. | 108 // to avoid holding onto stale node pointers. |
109 virtual void ExtensiveBookmarkChangesBeginning(BookmarkModel* model) {} | 109 virtual void ExtensiveBookmarkChangesBeginning(BookmarkModel* model) {} |
110 | 110 |
111 // Invoked after an extensive set of model changes has ended. | 111 // Invoked after an extensive set of model changes has ended. |
112 // This tells observers to update themselves if they were waiting for the | 112 // This tells observers to update themselves if they were waiting for the |
113 // update to finish. | 113 // update to finish. |
114 virtual void ExtensiveBookmarkChangesEnded(BookmarkModel* model) {} | 114 virtual void ExtensiveBookmarkChangesEnded(BookmarkModel* model) {} |
115 | 115 |
116 // Invoked before all non-permanent bookmark nodes that are editable by | 116 // Invoked before all non-permanent bookmark nodes that are editable by |
117 // the user are removed. | 117 // the user are removed. |
118 virtual void OnWillRemoveAllUserBookmarks(BookmarkModel* model) {} | 118 virtual void OnWillRemoveAllUserBookmarks(BookmarkModel* model) {} |
119 | 119 |
120 // Invoked when all non-permanent bookmark nodes that are editable by the | 120 // Invoked when all non-permanent bookmark nodes that are editable by the |
121 // user have been removed. | 121 // user have been removed. |
122 // |removed_urls| is populated with the urls which no longer have any | 122 // |removed_urls| is populated with the urls which no longer have any |
123 // bookmarks associated with them. | 123 // bookmarks associated with them. |
124 virtual void BookmarkAllUserNodesRemoved( | 124 virtual void BookmarkAllUserNodesRemoved( |
125 BookmarkModel* model, | 125 BookmarkModel* model, |
126 const std::set<GURL>& removed_urls) = 0; | 126 const std::set<GURL>& removed_urls) {} |
sky
2015/06/23 16:43:42
The idea with these functions is the one that may
sdefresne
2015/06/23 17:10:21
OK. I've removed the changes to BookmarkModelObser
| |
127 | 127 |
128 // Invoked before a set of model changes that is initiated by a single user | 128 // Invoked before a set of model changes that is initiated by a single user |
129 // action. For example, this is called a single time when pasting from the | 129 // action. For example, this is called a single time when pasting from the |
130 // clipboard before each pasted bookmark is added to the bookmark model. | 130 // clipboard before each pasted bookmark is added to the bookmark model. |
131 virtual void GroupedBookmarkChangesBeginning(BookmarkModel* model) {} | 131 virtual void GroupedBookmarkChangesBeginning(BookmarkModel* model) {} |
132 | 132 |
133 // Invoked after a set of model changes triggered by a single user action has | 133 // Invoked after a set of model changes triggered by a single user action has |
134 // ended. | 134 // ended. |
135 virtual void GroupedBookmarkChangesEnded(BookmarkModel* model) {} | 135 virtual void GroupedBookmarkChangesEnded(BookmarkModel* model) {} |
136 | 136 |
137 protected: | 137 protected: |
138 virtual ~BookmarkModelObserver() {} | 138 virtual ~BookmarkModelObserver() {} |
139 }; | 139 }; |
140 | 140 |
141 } // namespace bookmarks | 141 } // namespace bookmarks |
142 | 142 |
143 #endif // COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ | 143 #endif // COMPONENTS_BOOKMARKS_BROWSER_BOOKMARK_MODEL_OBSERVER_H_ |
OLD | NEW |