diff options
author | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-03 00:42:32 +0000 |
---|---|---|
committer | estade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-07-03 00:42:32 +0000 |
commit | d147dc266142d98a374b07510f27d57ed278f96c (patch) | |
tree | 4d2c3aae33ebf3289a4be5d840ffb16b835c151c /chrome | |
parent | 9b3adb2ba69fdd1beac0d215882c00d614096ba5 (diff) | |
download | chromium_src-d147dc266142d98a374b07510f27d57ed278f96c.zip chromium_src-d147dc266142d98a374b07510f27d57ed278f96c.tar.gz chromium_src-d147dc266142d98a374b07510f27d57ed278f96c.tar.bz2 |
Knock out a couple more TODOs from the bookmark manager.
TEST=edit the name of a folder; it should update in the left pane. Add a new bookmark URL; it should show up selected in the right pane. Also, see bug
BUG=http://crbug.com/15844
Review URL: http://codereview.chromium.org/149151
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@19870 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r-- | chrome/browser/gtk/bookmark_manager_gtk.cc | 37 |
1 files changed, 34 insertions, 3 deletions
diff --git a/chrome/browser/gtk/bookmark_manager_gtk.cc b/chrome/browser/gtk/bookmark_manager_gtk.cc index 08c9fab..18778d7 100644 --- a/chrome/browser/gtk/bookmark_manager_gtk.cc +++ b/chrome/browser/gtk/bookmark_manager_gtk.cc @@ -132,8 +132,14 @@ void BookmarkManager::Show(Profile* profile) { // BookmarkManagerGtk, public -------------------------------------------------- void BookmarkManagerGtk::SelectInTree(const BookmarkNode* node, bool expand) { + if (expand) + DCHECK(node->is_folder()); + + // Expand the left tree view to |node| if |node| is a folder, or to the parent + // folder of |node| if it is a URL. GtkTreeIter iter = { 0, }; - if (RecursiveFind(GTK_TREE_MODEL(left_store_), &iter, node->id())) { + int id = node->is_folder() ? node->id() : node->GetParent()->id(); + if (RecursiveFind(GTK_TREE_MODEL(left_store_), &iter, id)) { GtkTreePath* path = gtk_tree_model_get_path(GTK_TREE_MODEL(left_store_), &iter); gtk_tree_view_expand_to_path(GTK_TREE_VIEW(left_tree_view_), path); @@ -143,7 +149,22 @@ void BookmarkManagerGtk::SelectInTree(const BookmarkNode* node, bool expand) { gtk_tree_path_free(path); } - // TODO(estade): select in the right side table view? + + if (node->is_url()) { + GtkTreeIter iter; + bool found = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(right_store_), + &iter); + while (found) { + if (node->id() == GetRowIDAt(GTK_TREE_MODEL(right_store_), &iter)) { + gtk_tree_selection_select_iter(right_selection(), &iter); + break; + } + + found = gtk_tree_model_iter_next(GTK_TREE_MODEL(right_store_), &iter); + } + + DCHECK(found); + } } // static @@ -161,6 +182,7 @@ void BookmarkManagerGtk::BookmarkManagerGtk::Loaded(BookmarkModel* model) { BuildRightStore(); g_signal_connect(left_selection(), "changed", G_CALLBACK(OnLeftSelectionChanged), this); + ResetOrganizeMenu(false); } void BookmarkManagerGtk::BookmarkModelBeingDeleted(BookmarkModel* model) { @@ -216,7 +238,16 @@ void BookmarkManagerGtk::BookmarkNodeRemoved(BookmarkModel* model, void BookmarkManagerGtk::BookmarkNodeChanged(BookmarkModel* model, const BookmarkNode* node) { - // TODO(estade): rename in the left tree view. + if (node->is_folder()) { + GtkTreeIter iter = { 0, }; + if (RecursiveFind(GTK_TREE_MODEL(left_store_), &iter, node->id())) { + gtk_tree_store_set(left_store_, &iter, + bookmark_utils::FOLDER_NAME, + WideToUTF8(node->GetTitle()).c_str(), + bookmark_utils::ITEM_ID, node->id(), + -1); + } + } } void BookmarkManagerGtk::BookmarkNodeChildrenReordered( |