Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(435)

Side by Side Diff: chrome/browser/bookmarks/bookmark_expanded_state_tracker.cc

Issue 18536005: bookmarks: Change BookmarkExpandedStateTracker to take PrefService. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "chrome/browser/bookmarks/bookmark_expanded_state_tracker.h" 5 #include "chrome/browser/bookmarks/bookmark_expanded_state_tracker.h"
6 6
7 #include "base/prefs/pref_service.h" 7 #include "base/prefs/pref_service.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "base/values.h" 9 #include "base/values.h"
10 #include "chrome/browser/bookmarks/bookmark_model.h" 10 #include "chrome/browser/bookmarks/bookmark_model.h"
11 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 11 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
12 #include "chrome/common/pref_names.h" 12 #include "chrome/common/pref_names.h"
13 #include "components/user_prefs/user_prefs.h"
14 13
15 BookmarkExpandedStateTracker::BookmarkExpandedStateTracker( 14 BookmarkExpandedStateTracker::BookmarkExpandedStateTracker(
16 content::BrowserContext* browser_context, 15 BookmarkModel* bookmark_model,
17 BookmarkModel* bookmark_model) 16 PrefService* pref_service)
18 : browser_context_(browser_context), 17 : bookmark_model_(bookmark_model),
19 bookmark_model_(bookmark_model) { 18 pref_service_(pref_service) {
20 bookmark_model->AddObserver(this); 19 bookmark_model->AddObserver(this);
21 } 20 }
22 21
23 BookmarkExpandedStateTracker::~BookmarkExpandedStateTracker() { 22 BookmarkExpandedStateTracker::~BookmarkExpandedStateTracker() {
24 } 23 }
25 24
26 void BookmarkExpandedStateTracker::SetExpandedNodes(const Nodes& nodes) { 25 void BookmarkExpandedStateTracker::SetExpandedNodes(const Nodes& nodes) {
27 UpdatePrefs(nodes); 26 UpdatePrefs(nodes);
28 } 27 }
29 28
30 BookmarkExpandedStateTracker::Nodes 29 BookmarkExpandedStateTracker::Nodes
31 BookmarkExpandedStateTracker::GetExpandedNodes() { 30 BookmarkExpandedStateTracker::GetExpandedNodes() {
32 Nodes nodes; 31 Nodes nodes;
33 if (!bookmark_model_->loaded()) 32 if (!bookmark_model_->loaded())
34 return nodes; 33 return nodes;
35 34
36 PrefService* prefs = user_prefs::UserPrefs::Get(browser_context_); 35 if (!pref_service_)
37 if (!prefs)
38 return nodes; 36 return nodes;
39 37
40 const ListValue* value = prefs->GetList(prefs::kBookmarkEditorExpandedNodes); 38 const ListValue* value =
39 pref_service_->GetList(prefs::kBookmarkEditorExpandedNodes);
41 if (!value) 40 if (!value)
42 return nodes; 41 return nodes;
43 42
44 bool changed = false; 43 bool changed = false;
45 for (ListValue::const_iterator i = value->begin(); i != value->end(); ++i) { 44 for (ListValue::const_iterator i = value->begin(); i != value->end(); ++i) {
46 std::string value; 45 std::string value;
47 int64 node_id; 46 int64 node_id;
48 const BookmarkNode* node; 47 const BookmarkNode* node;
49 if ((*i)->GetAsString(&value) && base::StringToInt64(value, &node_id) && 48 if ((*i)->GetAsString(&value) && base::StringToInt64(value, &node_id) &&
50 (node = bookmark_model_->GetNodeByID(node_id)) != NULL && 49 (node = bookmark_model_->GetNodeByID(node_id)) != NULL &&
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 GetExpandedNodes(); 87 GetExpandedNodes();
89 } 88 }
90 89
91 void BookmarkExpandedStateTracker::BookmarkAllNodesRemoved( 90 void BookmarkExpandedStateTracker::BookmarkAllNodesRemoved(
92 BookmarkModel* model) { 91 BookmarkModel* model) {
93 // Ask for the nodes again, which removes any nodes that were deleted. 92 // Ask for the nodes again, which removes any nodes that were deleted.
94 GetExpandedNodes(); 93 GetExpandedNodes();
95 } 94 }
96 95
97 void BookmarkExpandedStateTracker::UpdatePrefs(const Nodes& nodes) { 96 void BookmarkExpandedStateTracker::UpdatePrefs(const Nodes& nodes) {
98 PrefService* prefs = user_prefs::UserPrefs::Get(browser_context_); 97 if (!pref_service_)
99 if (!prefs)
100 return; 98 return;
101 99
102 ListValue values; 100 ListValue values;
103 for (Nodes::const_iterator i = nodes.begin(); i != nodes.end(); ++i) { 101 for (Nodes::const_iterator i = nodes.begin(); i != nodes.end(); ++i) {
104 values.Set(values.GetSize(), 102 values.Set(values.GetSize(),
105 new StringValue(base::Int64ToString((*i)->id()))); 103 new StringValue(base::Int64ToString((*i)->id())));
106 } 104 }
107 105
108 prefs->Set(prefs::kBookmarkEditorExpandedNodes, values); 106 pref_service_->Set(prefs::kBookmarkEditorExpandedNodes, values);
109 } 107 }
OLDNEW
« no previous file with comments | « chrome/browser/bookmarks/bookmark_expanded_state_tracker.h ('k') | chrome/browser/bookmarks/bookmark_model.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698