diff options
author | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-07 00:36:34 +0000 |
---|---|---|
committer | tim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-07 00:36:34 +0000 |
commit | a8d71b03160ec962e541643d9e08d7f7d338213d (patch) | |
tree | 45f1a317b9c4508216cf87848fc081bef7f470a2 /chrome | |
parent | 776fa7c106b2b2d3f06985725681e094cef64514 (diff) | |
download | chromium_src-a8d71b03160ec962e541643d9e08d7f7d338213d.zip chromium_src-a8d71b03160ec962e541643d9e08d7f7d338213d.tar.gz chromium_src-a8d71b03160ec962e541643d9e08d7f7d338213d.tar.bz2 |
Have the ApplyEdit* bookmark utilities return the BookmarkNode pointer
so that callers know whether or not the original BookmarkNode* passed in
is still valid or not.
Review URL: http://codereview.chromium.org/149140
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19999 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_utils.cc | 45 | ||||
-rw-r--r-- | chrome/browser/bookmarks/bookmark_utils.h | 34 |
2 files changed, 42 insertions, 37 deletions
diff --git a/chrome/browser/bookmarks/bookmark_utils.cc b/chrome/browser/bookmarks/bookmark_utils.cc index f7c18cf..f08560a 100644 --- a/chrome/browser/bookmarks/bookmark_utils.cc +++ b/chrome/browser/bookmarks/bookmark_utils.cc @@ -513,12 +513,10 @@ bool DoesBookmarkContainText(const BookmarkNode* node, return (node->is_url() && DoesBookmarkContainWords(node, words, languages)); } -void ApplyEditsWithNoGroupChange(BookmarkModel* model, - const BookmarkNode* parent, - const BookmarkNode* node, - const std::wstring& new_title, - const GURL& new_url, - BookmarkEditor::Handler* handler) { +const BookmarkNode* ApplyEditsWithNoGroupChange(BookmarkModel* model, + const BookmarkNode* parent, const BookmarkNode* node, + const std::wstring& new_title, const GURL& new_url, + BookmarkEditor::Handler* handler) { const BookmarkNode* old_parent = node ? node->GetParent() : NULL; const int old_index = old_parent ? old_parent->IndexOfChild(node) : -1; @@ -528,49 +526,49 @@ void ApplyEditsWithNoGroupChange(BookmarkModel* model, if (handler) handler->NodeCreated(node); - return; + return node; } // If we're not showing the tree we only need to modify the node. if (old_index == -1) { NOTREACHED(); - return; + return node; } if (new_url != node->GetURL()) { - model->AddURLWithCreationTime(old_parent, old_index, new_title, - new_url, node->date_added()); + 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; } -void ApplyEditsWithPossibleGroupChange(BookmarkModel* model, - const BookmarkNode* new_parent, - const BookmarkNode* node, - const std::wstring& new_title, - const GURL& new_url, - BookmarkEditor::Handler* handler) { +const BookmarkNode* ApplyEditsWithPossibleGroupChange(BookmarkModel* model, + const BookmarkNode* new_parent, const BookmarkNode* node, + const std::wstring& new_title, const GURL& new_url, + BookmarkEditor::Handler* handler) { const BookmarkNode* old_parent = node ? node->GetParent() : NULL; const int old_index = old_parent ? old_parent->IndexOfChild(node) : -1; - + const BookmarkNode* return_node = node; if (node) { Time date_added = node->date_added(); if (new_parent == node->GetParent()) { // The parent is the same. if (new_url != node->GetURL()) { model->Remove(old_parent, old_index); - model->AddURLWithCreationTime(old_parent, old_index, - new_title, new_url, date_added); + return_node = model->AddURLWithCreationTime(old_parent, old_index, + new_title, new_url, date_added); } else { model->SetTitle(node, new_title); } } else if (new_url != node->GetURL()) { // The parent and URL changed. model->Remove(old_parent, old_index); - model->AddURLWithCreationTime(new_parent, new_parent->GetChildCount(), - new_title, new_url, date_added); + 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. model->Move(node, new_parent, new_parent->GetChildCount()); @@ -578,12 +576,13 @@ void ApplyEditsWithPossibleGroupChange(BookmarkModel* model, } } else { // We're adding a new URL. - node = + return_node = model->AddURL(new_parent, new_parent->GetChildCount(), new_title, new_url); if (handler) - handler->NodeCreated(node); + handler->NodeCreated(return_node); } + return return_node; } // Formerly in BookmarkBarView diff --git a/chrome/browser/bookmarks/bookmark_utils.h b/chrome/browser/bookmarks/bookmark_utils.h index a1a3e7b..97eec88 100644 --- a/chrome/browser/bookmarks/bookmark_utils.h +++ b/chrome/browser/bookmarks/bookmark_utils.h @@ -142,22 +142,28 @@ bool DoesBookmarkContainText(const BookmarkNode* node, const std::wstring& languages); // Modifies a bookmark node (assuming that there's no magic that needs to be -// done regarding moving from one folder to another). -void ApplyEditsWithNoGroupChange(BookmarkModel* model, - const BookmarkNode* parent, - const BookmarkNode* node, - const std::wstring& new_title, - const GURL& new_url, - BookmarkEditor::Handler* handler); +// done regarding moving from one folder to another). If the URL changed or a +// new node is explicitly being added, returns a pointer to the new node that +// was created. Otherwise the return value is identically |node|. +const BookmarkNode* ApplyEditsWithNoGroupChange( + BookmarkModel* model, + const BookmarkNode* parent, + const BookmarkNode* node, + const std::wstring& new_title, + const GURL& new_url, + BookmarkEditor::Handler* handler); // Modifies a bookmark node assuming that the parent of the node may have -// changed and the node will need to be removed and reinserted. -void ApplyEditsWithPossibleGroupChange(BookmarkModel* model, - const BookmarkNode* new_parent, - const BookmarkNode* node, - const std::wstring& new_title, - const GURL& new_url, - BookmarkEditor::Handler* handler); +// changed and the node will need to be removed and reinserted. If the URL +// changed or a new node is explicitly being added, returns a pointer to the +// new node that was created. Otherwise the return value is identically |node|. +const BookmarkNode* ApplyEditsWithPossibleGroupChange( + BookmarkModel* model, + const BookmarkNode* new_parent, + const BookmarkNode* node, + const std::wstring& new_title, + const GURL& new_url, + BookmarkEditor::Handler* handler); // Toggles whether the bookmark bar is shown only on the new tab page or on // all tabs. This is a preference modifier, not a visual modifier. |