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_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_UTILS_H_ | 5 #ifndef COMPONENTS_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_UTILS_H_ |
6 #define COMPONENTS_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_UTILS_H_ | 6 #define COMPONENTS_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_UTILS_H_ |
7 | 7 |
8 #include <set> | 8 #include <set> |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 namespace bookmarks { | 12 namespace bookmarks { |
13 class BookmarkModel; | 13 class BookmarkModel; |
14 class BookmarkNode; | 14 class BookmarkNode; |
15 } | 15 } |
16 | 16 |
17 namespace enhanced_bookmarks { | 17 namespace enhanced_bookmarks { |
18 | 18 |
19 static const char kLaunchLocationUMA[] = "Stars.LaunchLocation"; | |
20 | |
21 // Possible locations where a bookmark can be opened from. | 19 // Possible locations where a bookmark can be opened from. |
22 // Please sync with the corresponding histograms.xml. | 20 // Please sync with the corresponding histograms.xml. |
23 // | 21 // |
24 // A Java counterpart will be generated for this enum. | 22 // A Java counterpart will be generated for this enum. |
25 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.enhanced_bookmarks | 23 // GENERATED_JAVA_ENUM_PACKAGE: org.chromium.chrome.browser.enhanced_bookmarks |
26 enum LaunchLocation { | 24 enum LaunchLocation { |
27 ALL_ITEMS = 0, | 25 ALL_ITEMS = 0, |
28 UNCATEGORIZED = 1, // Deprecated. | 26 UNCATEGORIZED = 1, // Deprecated. |
29 FOLDER = 2, | 27 FOLDER = 2, |
30 FILTER = 3, | 28 FILTER = 3, |
31 SEARCH = 4, | 29 SEARCH = 4, |
32 BOOKMARK_EDITOR = 5, | 30 BOOKMARK_EDITOR = 5, |
33 COUNT = 6, | 31 COUNT = 6, |
34 }; | 32 }; |
35 | 33 |
36 // The vector is sorted in place. | |
37 // All of the bookmarks in |nodes| must be urls. | |
38 void SortBookmarksByName(std::vector<const bookmarks::BookmarkNode*>& nodes); | |
39 | |
40 // Returns the permanent nodes whose url children are considered uncategorized | 34 // Returns the permanent nodes whose url children are considered uncategorized |
41 // and whose folder children should be shown in the bookmark menu. | 35 // and whose folder children should be shown in the bookmark menu. |
42 // |model| must be loaded. | 36 // |model| must be loaded. |
43 std::vector<const bookmarks::BookmarkNode*> PrimaryPermanentNodes( | 37 std::vector<const bookmarks::BookmarkNode*> PrimaryPermanentNodes( |
44 bookmarks::BookmarkModel* model); | 38 bookmarks::BookmarkModel* model); |
45 | 39 |
46 // Returns an unsorted vector of folders that are considered to be at the "root" | 40 // Returns an unsorted vector of folders that are considered to be at the "root" |
47 // level of the bookmark hierarchy. Functionally, this means all direct | 41 // level of the bookmark hierarchy. Functionally, this means all direct |
48 // descendants of PrimaryPermanentNodes. | 42 // descendants of PrimaryPermanentNodes. |
49 std::vector<const bookmarks::BookmarkNode*> RootLevelFolders( | 43 std::vector<const bookmarks::BookmarkNode*> RootLevelFolders( |
50 bookmarks::BookmarkModel* model); | 44 bookmarks::BookmarkModel* model); |
51 | 45 |
52 // Returns whether |node| is a primary permanent node in the sense of | 46 // Returns whether |node| is a primary permanent node in the sense of |
53 // |PrimaryPermanentNodes|. | 47 // |PrimaryPermanentNodes|. |
54 bool IsPrimaryPermanentNode(const bookmarks::BookmarkNode* node, | 48 bool IsPrimaryPermanentNode(const bookmarks::BookmarkNode* node, |
55 bookmarks::BookmarkModel* model); | 49 bookmarks::BookmarkModel* model); |
56 | 50 |
57 // Returns the root level folder in which this node is directly, or indirectly | 51 // Returns the root level folder in which this node is directly, or indirectly |
58 // via subfolders, located. | 52 // via subfolders, located. |
59 const bookmarks::BookmarkNode* RootLevelFolderForNode( | 53 const bookmarks::BookmarkNode* RootLevelFolderForNode( |
60 const bookmarks::BookmarkNode* node, | 54 const bookmarks::BookmarkNode* node, |
61 bookmarks::BookmarkModel* model); | 55 bookmarks::BookmarkModel* model); |
62 | 56 |
63 } // namespace enhanced_bookmarks | 57 } // namespace enhanced_bookmarks |
64 | 58 |
65 #endif // COMPONENTS_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_UTILS_H_ | 59 #endif // COMPONENTS_ENHANCED_BOOKMARKS_ENHANCED_BOOKMARK_UTILS_H_ |
66 | 60 |
OLD | NEW |