diff options
author | arv@chromium.org <arv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-09 21:27:55 +0000 |
---|---|---|
committer | arv@chromium.org <arv@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-02-09 21:27:55 +0000 |
commit | e548660e28fb368fdf34629d0b229b6a7814fd0f (patch) | |
tree | cfa426e539ef4bffe523654ea19ab4eab135c255 /chrome/browser/bookmarks/bookmark_utils.cc | |
parent | b3b5a01d7ca4fb06cf4a93c9426e77e12ff47bf3 (diff) | |
download | chromium_src-e548660e28fb368fdf34629d0b229b6a7814fd0f.zip chromium_src-e548660e28fb368fdf34629d0b229b6a7814fd0f.tar.gz chromium_src-e548660e28fb368fdf34629d0b229b6a7814fd0f.tar.bz2 |
Implement BookmarkModel::SetUrl
BUG=10603
TEST=*_test.exe --gtest_filter=*Bookmark*
Also manually tested changing the URL through the bookmarks extension API, bookmark manager, bookmark bar and saw it update in all places and correctly sync to another chrome instance.
Review URL: http://codereview.chromium.org/582022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@38509 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/bookmarks/bookmark_utils.cc')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_utils.cc | 50 |
1 files changed, 10 insertions, 40 deletions
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index a172312..c6f82b3 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -529,24 +529,11 @@ const BookmarkNode* ApplyEditsWithNoGroupChange(BookmarkModel* model, const BookmarkNode* node = details.existing_node; DCHECK(node); - const BookmarkNode* old_parent = node->GetParent(); - int old_index = old_parent ? old_parent->IndexOfChild(node) : -1; - // If we're not showing the tree we only need to modify the node. - if (old_index == -1) { - NOTREACHED(); - return node; - } + if (node->is_url()) + model->SetURL(node, new_url); + model->SetTitle(node, new_title); - if (new_url != node->GetURL()) { - // TODO(sky): need SetURL on the model. - const BookmarkNode* new_node = model->AddURLWithCreationTime(old_parent, - old_index, new_title, new_url, node->date_added()); - model->Remove(old_parent, old_index + 1); - return new_node; - } else { - model->SetTitle(node, new_title); - } return node; } @@ -562,31 +549,14 @@ const BookmarkNode* ApplyEditsWithPossibleGroupChange(BookmarkModel* model, const BookmarkNode* node = details.existing_node; DCHECK(node); - const BookmarkNode* old_parent = node->GetParent(); - int old_index = old_parent->IndexOfChild(node); - const BookmarkNode* return_node = node; - - Time date_added = node->date_added(); - if (new_parent == node->GetParent()) { - // The parent is the same. - if (node->is_url() && new_url != node->GetURL()) { - model->Remove(old_parent, old_index); - return_node = model->AddURLWithCreationTime(old_parent, old_index, - new_title, new_url, date_added); - } else { - model->SetTitle(node, new_title); - } - } else if (node->is_url() && new_url != node->GetURL()) { - // The parent and URL changed. - model->Remove(old_parent, old_index); - return_node = model->AddURLWithCreationTime(new_parent, - new_parent->GetChildCount(), new_title, new_url, date_added); - } else { - // The parent and title changed. Move the node and change the title. + + if (new_parent != node->GetParent()) model->Move(node, new_parent, new_parent->GetChildCount()); - model->SetTitle(node, new_title); - } - return return_node; + if (node->is_url()) + model->SetURL(node, new_url); + model->SetTitle(node, new_title); + + return node; } // Formerly in BookmarkBarView |