Chromium Code Reviews| 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 #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; |
| 11 using bookmarks::BookmarkNode; | 11 using bookmarks::BookmarkNode; |
| 12 | 12 |
| 13 namespace enhanced_bookmarks { | 13 namespace enhanced_bookmarks { |
| 14 | 14 |
| 15 // Comparator used to sort bookmarks. No folders are allowed. | 15 // Comparator used to sort bookmarks. No folders are allowed. |
| 16 class BookmarkNameComparator : public std::binary_function<const BookmarkNode*, | 16 class BookmarkNameComparator : public std::binary_function<const BookmarkNode*, |
|
Lei Zhang
2015/04/07 21:59:29
Now BookmarkNameComparator is dead code. Care to d
| |
| 17 const BookmarkNode*, | 17 const BookmarkNode*, |
| 18 bool> { | 18 bool> { |
| 19 public: | 19 public: |
| 20 explicit BookmarkNameComparator(icu::Collator* collator) | 20 explicit BookmarkNameComparator(icu::Collator* collator) |
| 21 : collator_(collator) {} | 21 : collator_(collator) {} |
| 22 | 22 |
| 23 // Returns true if |n1| preceeds |n2|. | 23 // Returns true if |n1| preceeds |n2|. |
| 24 bool operator()(const BookmarkNode* n1, const BookmarkNode* n2) { | 24 bool operator()(const BookmarkNode* n1, const BookmarkNode* n2) { |
| 25 DCHECK(!n1->is_folder()); | 25 DCHECK(!n1->is_folder()); |
| 26 DCHECK(!n2->is_folder()); | 26 DCHECK(!n2->is_folder()); |
| 27 if (!collator_) | 27 if (!collator_) |
| 28 return n1->GetTitle() < n2->GetTitle(); | 28 return n1->GetTitle() < n2->GetTitle(); |
| 29 return base::i18n::CompareString16WithCollator( | 29 return base::i18n::CompareString16WithCollator( |
| 30 collator_, n1->GetTitle(), n2->GetTitle()) == UCOL_LESS; | 30 collator_, n1->GetTitle(), n2->GetTitle()) == UCOL_LESS; |
| 31 } | 31 } |
| 32 | 32 |
| 33 private: | 33 private: |
| 34 icu::Collator* collator_; | 34 icu::Collator* collator_; |
| 35 }; | 35 }; |
| 36 | 36 |
| 37 void SortBookmarksByName(std::vector<const BookmarkNode*>& nodes) { | |
| 38 UErrorCode error = U_ZERO_ERROR; | |
| 39 scoped_ptr<icu::Collator> collator(icu::Collator::createInstance(error)); | |
| 40 if (U_FAILURE(error)) | |
| 41 collator.reset(NULL); | |
| 42 std::sort(nodes.begin(), nodes.end(), BookmarkNameComparator(collator.get())); | |
| 43 } | |
| 44 | |
| 45 std::vector<const BookmarkNode*> PrimaryPermanentNodes(BookmarkModel* model) { | 37 std::vector<const BookmarkNode*> PrimaryPermanentNodes(BookmarkModel* model) { |
| 46 DCHECK(model->loaded()); | 38 DCHECK(model->loaded()); |
| 47 std::vector<const BookmarkNode*> nodes; | 39 std::vector<const BookmarkNode*> nodes; |
| 48 nodes.push_back(model->mobile_node()); | 40 nodes.push_back(model->mobile_node()); |
| 49 nodes.push_back(model->bookmark_bar_node()); | 41 nodes.push_back(model->bookmark_bar_node()); |
| 50 nodes.push_back(model->other_node()); | 42 nodes.push_back(model->other_node()); |
| 51 return nodes; | 43 return nodes; |
| 52 } | 44 } |
| 53 | 45 |
| 54 std::vector<const BookmarkNode*> RootLevelFolders(BookmarkModel* model) { | 46 std::vector<const BookmarkNode*> RootLevelFolders(BookmarkModel* model) { |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 88 const BookmarkNode* top = node; | 80 const BookmarkNode* top = node; |
| 89 while (top && | 81 while (top && |
| 90 std::find(root_folders.begin(), root_folders.end(), top) == | 82 std::find(root_folders.begin(), root_folders.end(), top) == |
| 91 root_folders.end()) { | 83 root_folders.end()) { |
| 92 top = top->parent(); | 84 top = top->parent(); |
| 93 } | 85 } |
| 94 return top; | 86 return top; |
| 95 } | 87 } |
| 96 | 88 |
| 97 } // namespace enhanced_bookmarks | 89 } // namespace enhanced_bookmarks |
| OLD | NEW |