diff options
author | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-03 03:07:56 +0000 |
---|---|---|
committer | tfarina@chromium.org <tfarina@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-03 03:07:56 +0000 |
commit | 4394f2bd350d8b65188e98f0227a706a0d327947 (patch) | |
tree | 9538abdc2e6c2050b31d3e2c84d9363954e5fb3c /chrome/browser/bookmarks/bookmark_utils.cc | |
parent | a3c4ef3bf3bfc924680ecb827e9f43c4c2c45ee2 (diff) | |
download | chromium_src-4394f2bd350d8b65188e98f0227a706a0d327947.zip chromium_src-4394f2bd350d8b65188e98f0227a706a0d327947.tar.gz chromium_src-4394f2bd350d8b65188e98f0227a706a0d327947.tar.bz2 |
bookmarks: Split BookmarkModel::SetURLStarred in two helper functions in bookmark_utils.
This patch splits SetURLStarred into:
- bookmark_utils::AddIfNotBookmarked
- bookmark_utils::RemoveAllBookmarks
BUG=None
TEST=None
R=sky@chromium.org
Review URL: http://codereview.chromium.org/7825017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99524 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/bookmarks/bookmark_utils.cc')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_utils.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index fcb3dc8..22563c9 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -752,4 +752,29 @@ void DeleteBookmarkFolders(BookmarkModel* model, } } +void AddIfNotBookmarked(BookmarkModel* model, + const GURL& url, + const string16& title) { + std::vector<const BookmarkNode*> bookmarks; + model->GetNodesByURL(url, &bookmarks); + if (!bookmarks.empty()) + return; // Nothing to do, a bookmark with that url already exists. + + const BookmarkNode* parent = model->GetParentForNewNodes(); + model->AddURL(parent, parent->child_count(), title, url); +} + +void RemoveAllBookmarks(BookmarkModel* model, const GURL& url) { + std::vector<const BookmarkNode*> bookmarks; + model->GetNodesByURL(url, &bookmarks); + + // Remove all the bookmarks. + for (size_t i = 0; i < bookmarks.size(); ++i) { + const BookmarkNode* node = bookmarks[i]; + int index = node->parent()->GetIndexOf(node); + if (index > -1) + model->Remove(node->parent(), index); + } +} + } // namespace bookmark_utils |