Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1055)

Side by Side Diff: chrome/browser/gtk/bookmark_tree_model.cc

Issue 271115: Makes canceling 'bookmark all tabs' delete the folder. Or rather,... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/gtk/bookmark_tree_model.h" 5 #include "chrome/browser/gtk/bookmark_tree_model.h"
6 6
7 #include <gtk/gtk.h> 7 #include <gtk/gtk.h>
8 8
9 #include "app/resource_bundle.h" 9 #include "app/resource_bundle.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
91 } // namespace 91 } // namespace
92 92
93 namespace bookmark_utils { 93 namespace bookmark_utils {
94 94
95 GtkTreeStore* MakeFolderTreeStore() { 95 GtkTreeStore* MakeFolderTreeStore() {
96 return gtk_tree_store_new(FOLDER_STORE_NUM_COLUMNS, GDK_TYPE_PIXBUF, 96 return gtk_tree_store_new(FOLDER_STORE_NUM_COLUMNS, GDK_TYPE_PIXBUF,
97 G_TYPE_STRING, G_TYPE_INT64, G_TYPE_BOOLEAN); 97 G_TYPE_STRING, G_TYPE_INT64, G_TYPE_BOOLEAN);
98 } 98 }
99 99
100 void AddToTreeStore(BookmarkModel* model, int64 selected_id, 100 void AddToTreeStore(BookmarkModel* model, int64 selected_id,
101 const BookmarkNode* node_to_ignore, GtkTreeStore* store, 101 GtkTreeStore* store, GtkTreeIter* selected_iter) {
102 GtkTreeIter* selected_iter) {
103 const BookmarkNode* root_node = model->root_node(); 102 const BookmarkNode* root_node = model->root_node();
104 for (int i = 0; i < root_node->GetChildCount(); ++i) { 103 for (int i = 0; i < root_node->GetChildCount(); ++i) {
105 AddToTreeStoreAt(root_node->GetChild(i), selected_id, node_to_ignore, store, 104 AddToTreeStoreAt(root_node->GetChild(i), selected_id, store, selected_iter,
106 selected_iter, NULL); 105 NULL);
107 } 106 }
108 } 107 }
109 108
110 GtkWidget* MakeTreeViewForStore(GtkTreeStore* store) { 109 GtkWidget* MakeTreeViewForStore(GtkTreeStore* store) {
111 GtkTreeViewColumn* column = gtk_tree_view_column_new(); 110 GtkTreeViewColumn* column = gtk_tree_view_column_new();
112 GtkCellRenderer* image_renderer = gtk_cell_renderer_pixbuf_new(); 111 GtkCellRenderer* image_renderer = gtk_cell_renderer_pixbuf_new();
113 gtk_tree_view_column_pack_start(column, image_renderer, FALSE); 112 gtk_tree_view_column_pack_start(column, image_renderer, FALSE);
114 gtk_tree_view_column_add_attribute(column, image_renderer, 113 gtk_tree_view_column_add_attribute(column, image_renderer,
115 "pixbuf", FOLDER_ICON); 114 "pixbuf", FOLDER_ICON);
116 GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new(); 115 GtkCellRenderer* text_renderer = gtk_cell_renderer_text_new();
(...skipping 14 matching lines...) Expand all
131 g_object_set_data(G_OBJECT(tree_view), kCellRendererTextKey, text_renderer); 130 g_object_set_data(G_OBJECT(tree_view), kCellRendererTextKey, text_renderer);
132 return tree_view; 131 return tree_view;
133 } 132 }
134 133
135 GtkCellRenderer* GetCellRendererText(GtkTreeView* tree_view) { 134 GtkCellRenderer* GetCellRendererText(GtkTreeView* tree_view) {
136 return static_cast<GtkCellRenderer*>( 135 return static_cast<GtkCellRenderer*>(
137 g_object_get_data(G_OBJECT(tree_view), kCellRendererTextKey)); 136 g_object_get_data(G_OBJECT(tree_view), kCellRendererTextKey));
138 } 137 }
139 138
140 void AddToTreeStoreAt(const BookmarkNode* node, int64 selected_id, 139 void AddToTreeStoreAt(const BookmarkNode* node, int64 selected_id,
141 const BookmarkNode* node_to_ignore, GtkTreeStore* store, 140 GtkTreeStore* store, GtkTreeIter* selected_iter,
142 GtkTreeIter* selected_iter, GtkTreeIter* parent) { 141 GtkTreeIter* parent) {
143 if (!node->is_folder() || node == node_to_ignore) 142 if (!node->is_folder())
144 return; 143 return;
145 144
146 GtkTreeIter iter; 145 GtkTreeIter iter;
147 AddSingleNodeToTreeStore(store, node, &iter, parent); 146 AddSingleNodeToTreeStore(store, node, &iter, parent);
148 if (selected_iter && node->id() == selected_id) { 147 if (selected_iter && node->id() == selected_id) {
149 // Save the iterator. Since we're using a GtkTreeStore, we're 148 // Save the iterator. Since we're using a GtkTreeStore, we're
150 // guaranteed that the iterator will remain valid as long as the above 149 // guaranteed that the iterator will remain valid as long as the above
151 // appended item exists. 150 // appended item exists.
152 *selected_iter = iter; 151 *selected_iter = iter;
153 } 152 }
154 153
155 for (int i = 0; i < node->GetChildCount(); ++i) { 154 for (int i = 0; i < node->GetChildCount(); ++i) {
156 AddToTreeStoreAt(node->GetChild(i), selected_id, node_to_ignore, store, 155 AddToTreeStoreAt(node->GetChild(i), selected_id, store, selected_iter,
157 selected_iter, &iter); 156 &iter);
158 } 157 }
159 } 158 }
160 159
161 const BookmarkNode* CommitTreeStoreDifferencesBetween( 160 const BookmarkNode* CommitTreeStoreDifferencesBetween(
162 BookmarkModel* bb_model, GtkTreeStore* tree_store, GtkTreeIter* selected) { 161 BookmarkModel* bb_model, GtkTreeStore* tree_store, GtkTreeIter* selected) {
163 const BookmarkNode* node_to_return = NULL; 162 const BookmarkNode* node_to_return = NULL;
164 GtkTreeModel* tree_model = GTK_TREE_MODEL(tree_store); 163 GtkTreeModel* tree_model = GTK_TREE_MODEL(tree_store);
165 164
166 GtkTreePath* selected_path = gtk_tree_model_get_path(tree_model, selected); 165 GtkTreePath* selected_path = gtk_tree_model_get_path(tree_model, selected);
167 166
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 ret_val = UTF8ToWide(utf8str); 219 ret_val = UTF8ToWide(utf8str);
221 g_value_unset(&value); 220 g_value_unset(&value);
222 } else { 221 } else {
223 NOTREACHED() << "Impossible type mismatch"; 222 NOTREACHED() << "Impossible type mismatch";
224 } 223 }
225 224
226 return ret_val; 225 return ret_val;
227 } 226 }
228 227
229 } // namespace bookmark_utils 228 } // namespace bookmark_utils
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698