Commit a8d71b03 authored by tim@chromium.org's avatar tim@chromium.org

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
parent 776fa7c1
......@@ -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
......
......@@ -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.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment