OLD | NEW |
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_utils.h" | 5 #include "chrome/browser/bookmarks/bookmark_utils.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/files/file_path.h" | 10 #include "base/files/file_path.h" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
53 } | 53 } |
54 } | 54 } |
55 | 55 |
56 // Comparison function that compares based on date modified of the two nodes. | 56 // Comparison function that compares based on date modified of the two nodes. |
57 bool MoreRecentlyModified(const BookmarkNode* n1, const BookmarkNode* n2) { | 57 bool MoreRecentlyModified(const BookmarkNode* n1, const BookmarkNode* n2) { |
58 return n1->date_folder_modified() > n2->date_folder_modified(); | 58 return n1->date_folder_modified() > n2->date_folder_modified(); |
59 } | 59 } |
60 | 60 |
61 // Returns true if |text| contains each string in |words|. This is used when | 61 // Returns true if |text| contains each string in |words|. This is used when |
62 // searching for bookmarks. | 62 // searching for bookmarks. |
63 bool DoesBookmarkTextContainWords(const string16& text, | 63 bool DoesBookmarkTextContainWords(const base::string16& text, |
64 const std::vector<string16>& words) { | 64 const std::vector<string16>& words) { |
65 for (size_t i = 0; i < words.size(); ++i) { | 65 for (size_t i = 0; i < words.size(); ++i) { |
66 if (!base::i18n::StringSearchIgnoringCaseAndAccents( | 66 if (!base::i18n::StringSearchIgnoringCaseAndAccents( |
67 words[i], text, NULL, NULL)) { | 67 words[i], text, NULL, NULL)) { |
68 return false; | 68 return false; |
69 } | 69 } |
70 } | 70 } |
71 return true; | 71 return true; |
72 } | 72 } |
73 | 73 |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 } | 208 } |
209 } | 209 } |
210 } | 210 } |
211 } | 211 } |
212 | 212 |
213 bool MoreRecentlyAdded(const BookmarkNode* n1, const BookmarkNode* n2) { | 213 bool MoreRecentlyAdded(const BookmarkNode* n1, const BookmarkNode* n2) { |
214 return n1->date_added() > n2->date_added(); | 214 return n1->date_added() > n2->date_added(); |
215 } | 215 } |
216 | 216 |
217 void GetBookmarksContainingText(BookmarkModel* model, | 217 void GetBookmarksContainingText(BookmarkModel* model, |
218 const string16& text, | 218 const base::string16& text, |
219 size_t max_count, | 219 size_t max_count, |
220 const std::string& languages, | 220 const std::string& languages, |
221 std::vector<const BookmarkNode*>* nodes) { | 221 std::vector<const BookmarkNode*>* nodes) { |
222 std::vector<string16> words; | 222 std::vector<string16> words; |
223 QueryParser parser; | 223 QueryParser parser; |
224 parser.ParseQueryWords(base::i18n::ToLower(text), &words); | 224 parser.ParseQueryWords(base::i18n::ToLower(text), &words); |
225 if (words.empty()) | 225 if (words.empty()) |
226 return; | 226 return; |
227 | 227 |
228 ui::TreeNodeIterator<const BookmarkNode> iterator(model->root_node()); | 228 ui::TreeNodeIterator<const BookmarkNode> iterator(model->root_node()); |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
286 const BookmarkNode* node = model->GetNodeByID(*iter); | 286 const BookmarkNode* node = model->GetNodeByID(*iter); |
287 if (!node) | 287 if (!node) |
288 continue; | 288 continue; |
289 const BookmarkNode* parent = node->parent(); | 289 const BookmarkNode* parent = node->parent(); |
290 model->Remove(parent, parent->GetIndexOf(node)); | 290 model->Remove(parent, parent->GetIndexOf(node)); |
291 } | 291 } |
292 } | 292 } |
293 | 293 |
294 void AddIfNotBookmarked(BookmarkModel* model, | 294 void AddIfNotBookmarked(BookmarkModel* model, |
295 const GURL& url, | 295 const GURL& url, |
296 const string16& title) { | 296 const base::string16& title) { |
297 std::vector<const BookmarkNode*> bookmarks; | 297 std::vector<const BookmarkNode*> bookmarks; |
298 model->GetNodesByURL(url, &bookmarks); | 298 model->GetNodesByURL(url, &bookmarks); |
299 if (!bookmarks.empty()) | 299 if (!bookmarks.empty()) |
300 return; // Nothing to do, a bookmark with that url already exists. | 300 return; // Nothing to do, a bookmark with that url already exists. |
301 | 301 |
302 content::RecordAction(content::UserMetricsAction("BookmarkAdded")); | 302 content::RecordAction(content::UserMetricsAction("BookmarkAdded")); |
303 const BookmarkNode* parent = model->GetParentForNewNodes(); | 303 const BookmarkNode* parent = model->GetParentForNewNodes(); |
304 model->AddURL(parent, parent->child_count(), title, url); | 304 model->AddURL(parent, parent->child_count(), title, url); |
305 } | 305 } |
306 | 306 |
307 void RemoveAllBookmarks(BookmarkModel* model, const GURL& url) { | 307 void RemoveAllBookmarks(BookmarkModel* model, const GURL& url) { |
308 std::vector<const BookmarkNode*> bookmarks; | 308 std::vector<const BookmarkNode*> bookmarks; |
309 model->GetNodesByURL(url, &bookmarks); | 309 model->GetNodesByURL(url, &bookmarks); |
310 | 310 |
311 // Remove all the bookmarks. | 311 // Remove all the bookmarks. |
312 for (size_t i = 0; i < bookmarks.size(); ++i) { | 312 for (size_t i = 0; i < bookmarks.size(); ++i) { |
313 const BookmarkNode* node = bookmarks[i]; | 313 const BookmarkNode* node = bookmarks[i]; |
314 int index = node->parent()->GetIndexOf(node); | 314 int index = node->parent()->GetIndexOf(node); |
315 if (index > -1) | 315 if (index > -1) |
316 model->Remove(node->parent(), index); | 316 model->Remove(node->parent(), index); |
317 } | 317 } |
318 } | 318 } |
319 | 319 |
320 } // namespace bookmark_utils | 320 } // namespace bookmark_utils |
OLD | NEW |