diff options
author | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-27 22:05:08 +0000 |
---|---|---|
committer | sky@google.com <sky@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-02-27 22:05:08 +0000 |
commit | 58b359d1055914da02ca1b79ea228118dff5ba44 (patch) | |
tree | cfd33e8ddbaf6afed4a6df441799320d758e7577 /chrome/browser/bookmarks/bookmark_table_model.cc | |
parent | cb9bb1317104cc8a7f219fdaeec45723a9e59e0e (diff) | |
download | chromium_src-58b359d1055914da02ca1b79ea228118dff5ba44.zip chromium_src-58b359d1055914da02ca1b79ea228118dff5ba44.tar.gz chromium_src-58b359d1055914da02ca1b79ea228118dff5ba44.tar.bz2 |
Wires up sorting of bookmarks to the 'organize menu' in the bookmark
manager (Glen says no context menus for now). All
BookmarkModelObservers have been updated appropriately.
BUG=1750
TEST=bring up the bookmark manager and try the 'Reorder by title' menu
item, make sure it works and I didn't screw up anything around it.
Review URL: http://codereview.chromium.org/27262
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10633 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/bookmarks/bookmark_table_model.cc')
-rw-r--r-- | chrome/browser/bookmarks/bookmark_table_model.cc | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/chrome/browser/bookmarks/bookmark_table_model.cc b/chrome/browser/bookmarks/bookmark_table_model.cc index 99c2f29..7a50e29 100644 --- a/chrome/browser/bookmarks/bookmark_table_model.cc +++ b/chrome/browser/bookmarks/bookmark_table_model.cc @@ -85,8 +85,7 @@ class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { FolderBookmarkTableModel(BookmarkModel* model, BookmarkNode* root_node) : VectorBackedBookmarkTableModel(model), root_node_(root_node) { - for (int i = 0; i < root_node->GetChildCount(); ++i) - nodes().push_back(root_node->GetChild(i)); + PopulateNodesFromRoot(); } virtual void BookmarkNodeMoved(BookmarkModel* model, @@ -146,12 +145,29 @@ class FolderBookmarkTableModel : public VectorBackedBookmarkTableModel { NotifyChanged(node); } + virtual void BookmarkNodeChildrenReordered(BookmarkModel* model, + BookmarkNode* node) { + if (node != root_node_) + return; + + nodes().clear(); + PopulateNodesFromRoot(); + + if (observer()) + observer()->OnModelChanged(); + } + private: void NotifyChanged(BookmarkNode* node) { if (node->GetParent() == root_node_ && observer()) observer()->OnItemsChanged(node->GetParent()->IndexOfChild(node), 1); } + void PopulateNodesFromRoot() { + for (int i = 0; i < root_node_->GetChildCount(); ++i) + nodes().push_back(root_node_->GetChild(i)); + } + // The node we're showing the children of. This is set to NULL if the node // (or one of its ancestors) is removed from the model. BookmarkNode* root_node_; |