| OLD | NEW |
| 1 // Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2006-2008 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 "app/drag_drop_types.h" | 7 #include "app/drag_drop_types.h" |
| 8 #include "app/l10n_util.h" | 8 #include "app/l10n_util.h" |
| 9 // TODO(port): Port these files. | 9 // TODO(port): Port these files. |
| 10 #if defined(OS_WIN) | 10 #if defined(OS_WIN) |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 #include "chrome/browser/browser_list.h" | 22 #include "chrome/browser/browser_list.h" |
| 23 #include "chrome/browser/history/query_parser.h" | 23 #include "chrome/browser/history/query_parser.h" |
| 24 #include "chrome/browser/profile.h" | 24 #include "chrome/browser/profile.h" |
| 25 #include "chrome/browser/tab_contents/page_navigator.h" | 25 #include "chrome/browser/tab_contents/page_navigator.h" |
| 26 #include "chrome/browser/tab_contents/tab_contents.h" | 26 #include "chrome/browser/tab_contents/tab_contents.h" |
| 27 #include "chrome/common/notification_service.h" | 27 #include "chrome/common/notification_service.h" |
| 28 #include "chrome/common/pref_names.h" | 28 #include "chrome/common/pref_names.h" |
| 29 #include "chrome/common/pref_service.h" | 29 #include "chrome/common/pref_service.h" |
| 30 #include "grit/chromium_strings.h" | 30 #include "grit/chromium_strings.h" |
| 31 #include "grit/generated_resources.h" | 31 #include "grit/generated_resources.h" |
| 32 #include "net/base/net_util.h" |
| 32 #include "views/event.h" | 33 #include "views/event.h" |
| 33 | 34 |
| 34 using base::Time; | 35 using base::Time; |
| 35 | 36 |
| 36 namespace { | 37 namespace { |
| 37 | 38 |
| 38 // A PageNavigator implementation that creates a new Browser. This is used when | 39 // A PageNavigator implementation that creates a new Browser. This is used when |
| 39 // opening a url and there is no Browser open. The Browser is created the first | 40 // opening a url and there is no Browser open. The Browser is created the first |
| 40 // time the PageNavigator method is invoked. | 41 // time the PageNavigator method is invoked. |
| 41 class NewBrowserPageNavigator : public PageNavigator { | 42 class NewBrowserPageNavigator : public PageNavigator { |
| (...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 170 bool DoesBookmarkTextContainWords(const std::wstring& text, | 171 bool DoesBookmarkTextContainWords(const std::wstring& text, |
| 171 const std::vector<std::wstring>& words) { | 172 const std::vector<std::wstring>& words) { |
| 172 for (size_t i = 0; i < words.size(); ++i) { | 173 for (size_t i = 0; i < words.size(); ++i) { |
| 173 if (text.find(words[i]) == std::wstring::npos) | 174 if (text.find(words[i]) == std::wstring::npos) |
| 174 return false; | 175 return false; |
| 175 } | 176 } |
| 176 return true; | 177 return true; |
| 177 } | 178 } |
| 178 | 179 |
| 179 // Returns true if |node|s title or url contains the strings in |words|. | 180 // Returns true if |node|s title or url contains the strings in |words|. |
| 181 // |languages| argument is user's accept-language setting to decode IDN. |
| 180 bool DoesBookmarkContainWords(BookmarkNode* node, | 182 bool DoesBookmarkContainWords(BookmarkNode* node, |
| 181 const std::vector<std::wstring>& words) { | 183 const std::vector<std::wstring>& words, |
| 184 const std::wstring& languages) { |
| 182 return | 185 return |
| 183 DoesBookmarkTextContainWords( | 186 DoesBookmarkTextContainWords( |
| 184 l10n_util::ToLower(node->GetTitle()), words) || | 187 l10n_util::ToLower(node->GetTitle()), words) || |
| 185 DoesBookmarkTextContainWords(UTF8ToWide(node->GetURL().spec()), words); | 188 DoesBookmarkTextContainWords(UTF8ToWide(node->GetURL().spec()), words) || |
| 189 DoesBookmarkTextContainWords(net::FormatUrl( |
| 190 node->GetURL(), languages, false, true, NULL, NULL), words); |
| 186 } | 191 } |
| 187 | 192 |
| 188 } // namespace | 193 } // namespace |
| 189 | 194 |
| 190 namespace bookmark_utils { | 195 namespace bookmark_utils { |
| 191 | 196 |
| 192 int num_urls_before_prompting = 15; | 197 int num_urls_before_prompting = 15; |
| 193 | 198 |
| 194 int PreferredDropOperation(int source_operations, int operations) { | 199 int PreferredDropOperation(int source_operations, int operations) { |
| 195 int common_ops = (source_operations & operations); | 200 int common_ops = (source_operations & operations); |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 471 } | 476 } |
| 472 } | 477 } |
| 473 | 478 |
| 474 bool MoreRecentlyAdded(BookmarkNode* n1, BookmarkNode* n2) { | 479 bool MoreRecentlyAdded(BookmarkNode* n1, BookmarkNode* n2) { |
| 475 return n1->date_added() > n2->date_added(); | 480 return n1->date_added() > n2->date_added(); |
| 476 } | 481 } |
| 477 | 482 |
| 478 void GetBookmarksContainingText(BookmarkModel* model, | 483 void GetBookmarksContainingText(BookmarkModel* model, |
| 479 const std::wstring& text, | 484 const std::wstring& text, |
| 480 size_t max_count, | 485 size_t max_count, |
| 486 const std::wstring& languages, |
| 481 std::vector<BookmarkNode*>* nodes) { | 487 std::vector<BookmarkNode*>* nodes) { |
| 482 std::vector<std::wstring> words; | 488 std::vector<std::wstring> words; |
| 483 QueryParser parser; | 489 QueryParser parser; |
| 484 parser.ExtractQueryWords(l10n_util::ToLower(text), &words); | 490 parser.ExtractQueryWords(l10n_util::ToLower(text), &words); |
| 485 if (words.empty()) | 491 if (words.empty()) |
| 486 return; | 492 return; |
| 487 | 493 |
| 488 TreeNodeIterator<BookmarkNode> iterator(model->root_node()); | 494 TreeNodeIterator<BookmarkNode> iterator(model->root_node()); |
| 489 while (iterator.has_next()) { | 495 while (iterator.has_next()) { |
| 490 BookmarkNode* node = iterator.Next(); | 496 BookmarkNode* node = iterator.Next(); |
| 491 if (node->is_url() && DoesBookmarkContainWords(node, words)) { | 497 if (node->is_url() && DoesBookmarkContainWords(node, words, languages)) { |
| 492 nodes->push_back(node); | 498 nodes->push_back(node); |
| 493 if (nodes->size() == max_count) | 499 if (nodes->size() == max_count) |
| 494 return; | 500 return; |
| 495 } | 501 } |
| 496 } | 502 } |
| 497 } | 503 } |
| 498 | 504 |
| 499 bool DoesBookmarkContainText(BookmarkNode* node, const std::wstring& text) { | 505 bool DoesBookmarkContainText(BookmarkNode* node, |
| 506 const std::wstring& text, |
| 507 const std::wstring& languages) { |
| 500 std::vector<std::wstring> words; | 508 std::vector<std::wstring> words; |
| 501 QueryParser parser; | 509 QueryParser parser; |
| 502 parser.ExtractQueryWords(l10n_util::ToLower(text), &words); | 510 parser.ExtractQueryWords(l10n_util::ToLower(text), &words); |
| 503 if (words.empty()) | 511 if (words.empty()) |
| 504 return false; | 512 return false; |
| 505 | 513 |
| 506 return (node->is_url() && DoesBookmarkContainWords(node, words)); | 514 return (node->is_url() && DoesBookmarkContainWords(node, words, languages)); |
| 507 } | 515 } |
| 508 | 516 |
| 509 void ApplyEditsWithNoGroupChange(BookmarkModel* model, | 517 void ApplyEditsWithNoGroupChange(BookmarkModel* model, |
| 510 BookmarkNode* parent, | 518 BookmarkNode* parent, |
| 511 BookmarkNode* node, | 519 BookmarkNode* node, |
| 512 const std::wstring& new_title, | 520 const std::wstring& new_title, |
| 513 const GURL& new_url, | 521 const GURL& new_url, |
| 514 BookmarkEditor::Handler* handler) { | 522 BookmarkEditor::Handler* handler) { |
| 515 BookmarkNode* old_parent = node ? node->GetParent() : NULL; | 523 BookmarkNode* old_parent = node ? node->GetParent() : NULL; |
| 516 const int old_index = old_parent ? old_parent->IndexOfChild(node) : -1; | 524 const int old_index = old_parent ? old_parent->IndexOfChild(node) : -1; |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 605 | 613 |
| 606 // Formerly in BookmarkTableView | 614 // Formerly in BookmarkTableView |
| 607 prefs->RegisterIntegerPref(prefs::kBookmarkTableNameWidth1, -1); | 615 prefs->RegisterIntegerPref(prefs::kBookmarkTableNameWidth1, -1); |
| 608 prefs->RegisterIntegerPref(prefs::kBookmarkTableURLWidth1, -1); | 616 prefs->RegisterIntegerPref(prefs::kBookmarkTableURLWidth1, -1); |
| 609 prefs->RegisterIntegerPref(prefs::kBookmarkTableNameWidth2, -1); | 617 prefs->RegisterIntegerPref(prefs::kBookmarkTableNameWidth2, -1); |
| 610 prefs->RegisterIntegerPref(prefs::kBookmarkTableURLWidth2, -1); | 618 prefs->RegisterIntegerPref(prefs::kBookmarkTableURLWidth2, -1); |
| 611 prefs->RegisterIntegerPref(prefs::kBookmarkTablePathWidth, -1); | 619 prefs->RegisterIntegerPref(prefs::kBookmarkTablePathWidth, -1); |
| 612 } | 620 } |
| 613 | 621 |
| 614 } // namespace bookmark_utils | 622 } // namespace bookmark_utils |
| OLD | NEW |