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

Side by Side Diff: components/enhanced_bookmarks/enhanced_bookmark_utils.cc

Issue 884933002: ★ Add Bookmarks Bar to the list of primary permanent nodes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
« no previous file with comments | « components/enhanced_bookmarks/enhanced_bookmark_utils.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 #include "components/enhanced_bookmarks/enhanced_bookmark_utils.h" 5 #include "components/enhanced_bookmarks/enhanced_bookmark_utils.h"
6 6
7 #include "base/i18n/string_compare.h" 7 #include "base/i18n/string_compare.h"
8 #include "components/bookmarks/browser/bookmark_model.h" 8 #include "components/bookmarks/browser/bookmark_model.h"
9 9
10 using bookmarks::BookmarkModel; 10 using bookmarks::BookmarkModel;
(...skipping 28 matching lines...) Expand all
39 if (U_FAILURE(error)) 39 if (U_FAILURE(error))
40 collator.reset(NULL); 40 collator.reset(NULL);
41 std::sort(nodes.begin(), nodes.end(), BookmarkNameComparator(collator.get())); 41 std::sort(nodes.begin(), nodes.end(), BookmarkNameComparator(collator.get()));
42 } 42 }
43 43
44 std::vector<const BookmarkNode*> PrimaryPermanentNodes(BookmarkModel* model) { 44 std::vector<const BookmarkNode*> PrimaryPermanentNodes(BookmarkModel* model) {
45 DCHECK(model->loaded()); 45 DCHECK(model->loaded());
46 std::vector<const BookmarkNode*> nodes; 46 std::vector<const BookmarkNode*> nodes;
47 nodes.push_back(model->other_node()); 47 nodes.push_back(model->other_node());
48 nodes.push_back(model->mobile_node()); 48 nodes.push_back(model->mobile_node());
49 nodes.push_back(model->bookmark_bar_node());
49 return nodes; 50 return nodes;
50 } 51 }
51 52
52 std::vector<const BookmarkNode*> RootLevelFolders(BookmarkModel* model) { 53 std::vector<const BookmarkNode*> RootLevelFolders(BookmarkModel* model) {
53 std::vector<const BookmarkNode*> root_level_folders; 54 std::vector<const BookmarkNode*> root_level_folders;
54 55
55 // Find the direct folder children of the primary permanent nodes. 56 // Find the direct folder children of the primary permanent nodes.
56 std::vector<const BookmarkNode*> primary_permanent_nodes = 57 std::vector<const BookmarkNode*> primary_permanent_nodes =
57 PrimaryPermanentNodes(model); 58 PrimaryPermanentNodes(model);
58 for (const BookmarkNode* parent : primary_permanent_nodes) { 59 for (const BookmarkNode* parent : primary_permanent_nodes) {
59 int child_count = parent->child_count(); 60 int child_count = parent->child_count();
60 for (int i = 0; i < child_count; ++i) { 61 for (int i = 0; i < child_count; ++i) {
61 const BookmarkNode* node = parent->GetChild(i); 62 const BookmarkNode* node = parent->GetChild(i);
62 if (node->is_folder() && node->IsVisible()) 63 if (node->is_folder() && node->IsVisible())
63 root_level_folders.push_back(node); 64 root_level_folders.push_back(node);
64 } 65 }
65 } 66 }
66
67 // Add the bookmark bar if it has children.
68 const BookmarkNode* bb_node = model->bookmark_bar_node();
69 if (bb_node->child_count() > 0)
70 root_level_folders.push_back(bb_node);
71
72 return root_level_folders; 67 return root_level_folders;
73 } 68 }
74 69
75 bool IsPrimaryPermanentNode(const BookmarkNode* node, BookmarkModel* model) { 70 bool IsPrimaryPermanentNode(const BookmarkNode* node, BookmarkModel* model) {
76 std::vector<const BookmarkNode*> primary_nodes(PrimaryPermanentNodes(model)); 71 std::vector<const BookmarkNode*> primary_nodes(PrimaryPermanentNodes(model));
77 if (std::find(primary_nodes.begin(), primary_nodes.end(), node) != 72 if (std::find(primary_nodes.begin(), primary_nodes.end(), node) !=
78 primary_nodes.end()) { 73 primary_nodes.end()) {
79 return true; 74 return true;
80 } 75 }
81 return false; 76 return false;
(...skipping 10 matching lines...) Expand all
92 const BookmarkNode* top = node; 87 const BookmarkNode* top = node;
93 while (top && 88 while (top &&
94 std::find(root_folders.begin(), root_folders.end(), top) == 89 std::find(root_folders.begin(), root_folders.end(), top) ==
95 root_folders.end()) { 90 root_folders.end()) {
96 top = top->parent(); 91 top = top->parent();
97 } 92 }
98 return top; 93 return top;
99 } 94 }
100 95
101 } // namespace enhanced_bookmarks 96 } // namespace enhanced_bookmarks
OLDNEW
« no previous file with comments | « components/enhanced_bookmarks/enhanced_bookmark_utils.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698