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

Unified Diff: chrome/browser/bookmarks/bookmark_utils.cc

Issue 242823002: Extract GetNodeByID() method from BookmarkModel. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/bookmarks/bookmark_utils.cc
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc
index 01c00475b8983905cd1996c005f417eb3f488dc5..8c0681107ef730a66c1fbb6002f9c13b722c1a51 100644
--- a/chrome/browser/bookmarks/bookmark_utils.cc
+++ b/chrome/browser/bookmarks/bookmark_utils.cc
@@ -111,6 +111,18 @@ bool HasSelectedAncestor(BookmarkModel* model,
return HasSelectedAncestor(model, selected_nodes, node->parent());
}
+const BookmarkNode* GetBookmarkNodeByID(const BookmarkNode* node, int64 id) {
+ if (node->id() == id)
+ return node;
+
+ for (int i = 0, child_count = node->child_count(); i < child_count; ++i) {
+ const BookmarkNode* result = GetBookmarkNodeByID(node->GetChild(i), id);
+ if (result)
+ return result;
+ }
+ return NULL;
+}
+
} // namespace
namespace bookmark_utils {
@@ -340,7 +352,7 @@ void DeleteBookmarkFolders(BookmarkModel* model,
for (std::vector<int64>::const_iterator iter = ids.begin();
iter != ids.end();
++iter) {
- const BookmarkNode* node = model->GetNodeByID(*iter);
+ const BookmarkNode* node = GetNodeByID(model, *iter);
if (!node)
continue;
const BookmarkNode* parent = node->parent();
@@ -374,4 +386,9 @@ void RemoveAllBookmarks(BookmarkModel* model, const GURL& url) {
}
}
+const BookmarkNode* GetNodeByID(BookmarkModel* model, int64 id) {
sky 2014/04/18 14:07:44 Make this take a const BookmarkModel.
tfarina 2014/04/18 22:55:46 This introduced an ugly const_cast, but if you wan
+ // TODO(sky): TreeNode needs a method that visits all nodes using a predicate.
+ return GetBookmarkNodeByID(model->root_node(), id);
+}
+
} // namespace bookmark_utils

Powered by Google App Engine
This is Rietveld 408576698