summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-03 00:42:32 +0000
committerestade@chromium.org <estade@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-03 00:42:32 +0000
commitd147dc266142d98a374b07510f27d57ed278f96c (patch)
tree4d2c3aae33ebf3289a4be5d840ffb16b835c151c /chrome
parent9b3adb2ba69fdd1beac0d215882c00d614096ba5 (diff)
downloadchromium_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.cc37
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(