summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authortim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-07 00:36:34 +0000
committertim@chromium.org <tim@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-07 00:36:34 +0000
commita8d71b03160ec962e541643d9e08d7f7d338213d (patch)
tree45f1a317b9c4508216cf87848fc081bef7f470a2 /chrome
parent776fa7c106b2b2d3f06985725681e094cef64514 (diff)
downloadchromium_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.cc45
-rw-r--r--chrome/browser/bookmarks/bookmark_utils.h34
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.