OLD | NEW |
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_editor_gtk.h" | 5 #include "chrome/browser/gtk/bookmark_editor_gtk.h" |
6 | 6 |
7 #include <gtk/gtk.h> | 7 #include <gtk/gtk.h> |
8 | 8 |
9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
10 #include "base/basictypes.h" | 10 #include "base/basictypes.h" |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 G_CALLBACK(OnEntryChanged), this); | 161 G_CALLBACK(OnEntryChanged), this); |
162 gtk_entry_set_activates_default(GTK_ENTRY(url_entry_), TRUE); | 162 gtk_entry_set_activates_default(GTK_ENTRY(url_entry_), TRUE); |
163 gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(url_entry_), | 163 gtk_table_attach_defaults(GTK_TABLE(table), GTK_WIDGET(url_entry_), |
164 1, 2, 1, 2); | 164 1, 2, 1, 2); |
165 | 165 |
166 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); | 166 gtk_box_pack_start(GTK_BOX(vbox), table, FALSE, FALSE, 0); |
167 | 167 |
168 if (show_tree_) { | 168 if (show_tree_) { |
169 GtkTreeIter selected_iter; | 169 GtkTreeIter selected_iter; |
170 int selected_id = node_ ? node_->GetParent()->id() : 0; | 170 int selected_id = node_ ? node_->GetParent()->id() : 0; |
171 bookmark_utils::BuildTreeStoreFrom(bb_model_, selected_id, &tree_store_, | 171 tree_store_ = bookmark_utils::MakeFolderTreeStore(); |
172 &selected_iter); | 172 bookmark_utils::AddToTreeStore(bb_model_, selected_id, |
| 173 tree_store_, &selected_iter); |
173 | 174 |
174 // TODO(erg): Figure out how to place icons here. | 175 GtkTreeViewColumn* icon_column = |
| 176 gtk_tree_view_column_new_with_attributes( |
| 177 "", gtk_cell_renderer_pixbuf_new(), "pixbuf", |
| 178 bookmark_utils::FOLDER_ICON, NULL); |
175 GtkTreeViewColumn* name_column = | 179 GtkTreeViewColumn* name_column = |
176 gtk_tree_view_column_new_with_attributes( | 180 gtk_tree_view_column_new_with_attributes( |
177 "Folder", gtk_cell_renderer_text_new(), "text", 0, NULL); | 181 "", gtk_cell_renderer_text_new(), "text", |
| 182 bookmark_utils::FOLDER_NAME, NULL); |
178 | 183 |
179 tree_view_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(tree_store_)); | 184 tree_view_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(tree_store_)); |
| 185 // Let |tree_view| own the store. |
| 186 g_object_unref(tree_store_); |
180 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view_), FALSE); | 187 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_view_), FALSE); |
181 gtk_tree_view_insert_column(GTK_TREE_VIEW(tree_view_), name_column, -1); | 188 gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view_), icon_column); |
| 189 gtk_tree_view_append_column(GTK_TREE_VIEW(tree_view_), name_column); |
182 gtk_widget_set_size_request(tree_view_, kTreeWidth, kTreeHeight); | 190 gtk_widget_set_size_request(tree_view_, kTreeWidth, kTreeHeight); |
183 | 191 |
184 tree_selection_ = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view_)); | 192 tree_selection_ = gtk_tree_view_get_selection(GTK_TREE_VIEW(tree_view_)); |
185 | 193 |
186 GtkTreePath* path = NULL; | 194 GtkTreePath* path = NULL; |
187 if (selected_id) { | 195 if (selected_id) { |
188 path = gtk_tree_model_get_path(GTK_TREE_MODEL(tree_store_), | 196 path = gtk_tree_model_get_path(GTK_TREE_MODEL(tree_store_), |
189 &selected_iter); | 197 &selected_iter); |
190 } else { | 198 } else { |
191 // We don't have a selected parent (Probably because we're making a new | 199 // We don't have a selected parent (Probably because we're making a new |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
323 } | 331 } |
324 | 332 |
325 bookmark_utils::ApplyEditsWithPossibleGroupChange( | 333 bookmark_utils::ApplyEditsWithPossibleGroupChange( |
326 bb_model_, new_parent, node_, new_title, new_url, handler_.get()); | 334 bb_model_, new_parent, node_, new_title, new_url, handler_.get()); |
327 } | 335 } |
328 | 336 |
329 void BookmarkEditorGtk::AddNewGroup(GtkTreeIter* parent, GtkTreeIter* child) { | 337 void BookmarkEditorGtk::AddNewGroup(GtkTreeIter* parent, GtkTreeIter* child) { |
330 gtk_tree_store_append(tree_store_, child, parent); | 338 gtk_tree_store_append(tree_store_, child, parent); |
331 gtk_tree_store_set( | 339 gtk_tree_store_set( |
332 tree_store_, child, | 340 tree_store_, child, |
333 0, l10n_util::GetStringUTF8(IDS_BOOMARK_EDITOR_NEW_FOLDER_NAME).c_str(), | 341 bookmark_utils::FOLDER_ICON, |
334 1, 0, | 342 bookmark_utils::GetFolderIcon(), |
| 343 bookmark_utils::FOLDER_NAME, |
| 344 l10n_util::GetStringUTF8(IDS_BOOMARK_EDITOR_NEW_FOLDER_NAME).c_str(), |
| 345 bookmark_utils::ITEM_ID, 0, |
335 -1); | 346 -1); |
336 } | 347 } |
337 | 348 |
338 // static | 349 // static |
339 void BookmarkEditorGtk::OnResponse(GtkDialog* dialog, int response_id, | 350 void BookmarkEditorGtk::OnResponse(GtkDialog* dialog, int response_id, |
340 BookmarkEditorGtk* window) { | 351 BookmarkEditorGtk* window) { |
341 if (response_id == GTK_RESPONSE_ACCEPT) { | 352 if (response_id == GTK_RESPONSE_ACCEPT) { |
342 window->ApplyEdits(); | 353 window->ApplyEdits(); |
343 } | 354 } |
344 | 355 |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
394 | 405 |
395 GtkTreeIter new_item_iter; | 406 GtkTreeIter new_item_iter; |
396 dialog->AddNewGroup(&iter, &new_item_iter); | 407 dialog->AddNewGroup(&iter, &new_item_iter); |
397 | 408 |
398 GtkTreePath* path = gtk_tree_model_get_path( | 409 GtkTreePath* path = gtk_tree_model_get_path( |
399 GTK_TREE_MODEL(dialog->tree_store_), &new_item_iter); | 410 GTK_TREE_MODEL(dialog->tree_store_), &new_item_iter); |
400 gtk_tree_view_expand_to_path(GTK_TREE_VIEW(dialog->tree_view_), path); | 411 gtk_tree_view_expand_to_path(GTK_TREE_VIEW(dialog->tree_view_), path); |
401 gtk_tree_selection_select_path(dialog->tree_selection_, path); | 412 gtk_tree_selection_select_path(dialog->tree_selection_, path); |
402 gtk_tree_path_free(path); | 413 gtk_tree_path_free(path); |
403 } | 414 } |
OLD | NEW |