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_EXPANDED_STATE_TRACKER_H_ | |
6 #define COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_EXPANDED_STATE_TRACKER_H_ | |
7 | |
8 #include <set> | |
9 | |
10 #include "components/bookmarks/core/browser/base_bookmark_model_observer.h" | |
11 | |
12 class BookmarkModel; | |
13 class BookmarkNode; | |
14 class PrefService; | |
15 | |
16 // BookmarkExpandedStateTracker is used to track a set of expanded nodes. The | |
17 // nodes are persisted in preferences. If an expanded node is removed from the | |
18 // model BookmarkExpandedStateTracker removes the node. | |
19 class BookmarkExpandedStateTracker : public BaseBookmarkModelObserver { | |
20 public: | |
21 typedef std::set<const BookmarkNode*> Nodes; | |
22 | |
23 BookmarkExpandedStateTracker(BookmarkModel* bookmark_model, | |
24 PrefService* pref_service); | |
25 virtual ~BookmarkExpandedStateTracker(); | |
26 | |
27 // The set of expanded nodes. | |
28 void SetExpandedNodes(const Nodes& nodes); | |
29 Nodes GetExpandedNodes(); | |
30 | |
31 private: | |
32 // BaseBookmarkModelObserver: | |
33 virtual void BookmarkModelLoaded(BookmarkModel* model, | |
34 bool ids_reassigned) OVERRIDE; | |
35 virtual void BookmarkModelChanged() OVERRIDE; | |
36 virtual void BookmarkModelBeingDeleted(BookmarkModel* model) OVERRIDE; | |
37 virtual void BookmarkNodeRemoved(BookmarkModel* model, | |
38 const BookmarkNode* parent, | |
39 int old_index, | |
40 const BookmarkNode* node, | |
41 const std::set<GURL>& removed_urls) OVERRIDE; | |
42 virtual void BookmarkAllNodesRemoved( | |
43 BookmarkModel* model, | |
44 const std::set<GURL>& removed_urls) OVERRIDE; | |
45 | |
46 // Updates the value for |prefs::kBookmarkEditorExpandedNodes| from | |
47 // GetExpandedNodes(). | |
48 void UpdatePrefs(const Nodes& nodes); | |
49 | |
50 BookmarkModel* bookmark_model_; | |
51 PrefService* pref_service_; | |
52 | |
53 DISALLOW_COPY_AND_ASSIGN(BookmarkExpandedStateTracker); | |
54 }; | |
55 | |
56 #endif // COMPONENTS_BOOKMARKS_CORE_BROWSER_BOOKMARK_EXPANDED_STATE_TRACKER_H_ | |
OLD | NEW |