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

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

Issue 210036: Make it possible to edit bookmark folder names inline. This (Closed)
Patch Set: comments Created 11 years, 3 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
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.h ('k') | chrome/browser/gtk/bookmark_tree_model.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_manager_gtk.h" 5 #include "chrome/browser/gtk/bookmark_manager_gtk.h"
6 6
7 #include <gdk/gdkkeysyms.h> 7 #include <gdk/gdkkeysyms.h>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/gtk_dnd_util.h" 10 #include "app/gtk_dnd_util.h"
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
439 G_CALLBACK(OnLeftTreeViewRowCollapsed), this); 439 G_CALLBACK(OnLeftTreeViewRowCollapsed), this);
440 g_signal_connect(left_tree_view_, "focus-in-event", 440 g_signal_connect(left_tree_view_, "focus-in-event",
441 G_CALLBACK(OnLeftTreeViewFocusIn), this); 441 G_CALLBACK(OnLeftTreeViewFocusIn), this);
442 g_signal_connect(left_tree_view_, "button-press-event", 442 g_signal_connect(left_tree_view_, "button-press-event",
443 G_CALLBACK(OnTreeViewButtonPress), this); 443 G_CALLBACK(OnTreeViewButtonPress), this);
444 g_signal_connect(left_tree_view_, "button-release-event", 444 g_signal_connect(left_tree_view_, "button-release-event",
445 G_CALLBACK(OnTreeViewButtonRelease), this); 445 G_CALLBACK(OnTreeViewButtonRelease), this);
446 g_signal_connect(left_tree_view_, "key-press-event", 446 g_signal_connect(left_tree_view_, "key-press-event",
447 G_CALLBACK(OnTreeViewKeyPress), this); 447 G_CALLBACK(OnTreeViewKeyPress), this);
448 448
449 GtkCellRenderer* cell_renderer_text = bookmark_utils::GetCellRendererText(
450 GTK_TREE_VIEW(left_tree_view_));
451 g_signal_connect(cell_renderer_text, "edited",
452 G_CALLBACK(OnFolderNameEdited), this);
453
449 // The left side is only a drag destination (not a source). 454 // The left side is only a drag destination (not a source).
450 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP, 455 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP,
451 NULL, 0, GDK_ACTION_MOVE); 456 NULL, 0, GDK_ACTION_MOVE);
452 GtkDndUtil::SetDestTargetList(left_tree_view_, kDestTargetList); 457 GtkDndUtil::SetDestTargetList(left_tree_view_, kDestTargetList);
453 458
454 g_signal_connect(left_tree_view_, "drag-data-received", 459 g_signal_connect(left_tree_view_, "drag-data-received",
455 G_CALLBACK(&OnLeftTreeViewDragReceived), this); 460 G_CALLBACK(&OnLeftTreeViewDragReceived), this);
456 g_signal_connect(left_tree_view_, "drag-motion", 461 g_signal_connect(left_tree_view_, "drag-motion",
457 G_CALLBACK(&OnLeftTreeViewDragMotion), this); 462 G_CALLBACK(&OnLeftTreeViewDragMotion), this);
458 463
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 // TODO(estade): is there a decent stock icon we can use here? 625 // TODO(estade): is there a decent stock icon we can use here?
621 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); 626 ResourceBundle& rb = ResourceBundle::GetSharedInstance();
622 gtk_tree_store_append(left_store_, &select_iter, NULL); 627 gtk_tree_store_append(left_store_, &select_iter, NULL);
623 gtk_tree_store_set(left_store_, &select_iter, 628 gtk_tree_store_set(left_store_, &select_iter,
624 bookmark_utils::FOLDER_ICON, 629 bookmark_utils::FOLDER_ICON,
625 rb.GetPixbufNamed(IDR_BOOKMARK_MANAGER_RECENT_ICON), 630 rb.GetPixbufNamed(IDR_BOOKMARK_MANAGER_RECENT_ICON),
626 bookmark_utils::FOLDER_NAME, 631 bookmark_utils::FOLDER_NAME,
627 l10n_util::GetStringUTF8( 632 l10n_util::GetStringUTF8(
628 IDS_BOOKMARK_TREE_RECENTLY_BOOKMARKED_NODE_TITLE).c_str(), 633 IDS_BOOKMARK_TREE_RECENTLY_BOOKMARKED_NODE_TITLE).c_str(),
629 bookmark_utils::ITEM_ID, kRecentID, 634 bookmark_utils::ITEM_ID, kRecentID,
635 bookmark_utils::IS_EDITABLE, FALSE,
630 -1); 636 -1);
631 637
632 GdkPixbuf* search_icon = gtk_widget_render_icon( 638 GdkPixbuf* search_icon = gtk_widget_render_icon(
633 window_, GTK_STOCK_FIND, GTK_ICON_SIZE_MENU, NULL); 639 window_, GTK_STOCK_FIND, GTK_ICON_SIZE_MENU, NULL);
634 gtk_tree_store_append(left_store_, &select_iter, NULL); 640 gtk_tree_store_append(left_store_, &select_iter, NULL);
635 gtk_tree_store_set(left_store_, &select_iter, 641 gtk_tree_store_set(left_store_, &select_iter,
636 bookmark_utils::FOLDER_ICON, 642 bookmark_utils::FOLDER_ICON,
637 search_icon, 643 search_icon,
638 bookmark_utils::FOLDER_NAME, 644 bookmark_utils::FOLDER_NAME,
639 l10n_util::GetStringUTF8( 645 l10n_util::GetStringUTF8(
640 IDS_BOOKMARK_TREE_SEARCH_NODE_TITLE).c_str(), 646 IDS_BOOKMARK_TREE_SEARCH_NODE_TITLE).c_str(),
641 bookmark_utils::ITEM_ID, kSearchID, 647 bookmark_utils::ITEM_ID, kSearchID,
648 bookmark_utils::IS_EDITABLE, FALSE,
642 -1); 649 -1);
643 g_object_unref(search_icon); 650 g_object_unref(search_icon);
644 } 651 }
645 652
646 void BookmarkManagerGtk::BuildRightStore() { 653 void BookmarkManagerGtk::BuildRightStore() {
647 right_tree_adapter_->OnModelChanged(); 654 right_tree_adapter_->OnModelChanged();
648 } 655 }
649 656
650 void BookmarkManagerGtk::ResetRightStoreModel() { 657 void BookmarkManagerGtk::ResetRightStoreModel() {
651 const BookmarkNode* node = GetFolder(); 658 const BookmarkNode* node = GetFolder();
(...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after
1301 if (bm->organize_menu_.get() && 1308 if (bm->organize_menu_.get() &&
1302 bm->organize_menu_->IsCommandEnabled(command)) { 1309 bm->organize_menu_->IsCommandEnabled(command)) {
1303 bm->organize_menu_->ExecuteCommand(command); 1310 bm->organize_menu_->ExecuteCommand(command);
1304 return TRUE; 1311 return TRUE;
1305 } 1312 }
1306 1313
1307 return FALSE; 1314 return FALSE;
1308 } 1315 }
1309 1316
1310 // static 1317 // static
1318 void BookmarkManagerGtk::OnFolderNameEdited(GtkCellRendererText* render,
1319 gchar* path, gchar* new_folder_name, BookmarkManagerGtk* bm) {
1320 // A folder named was edited in place. Sync the change to the bookmark
1321 // model.
1322 GtkTreeIter iter;
1323 GtkTreePath* tree_path = gtk_tree_path_new_from_string(path);
1324 gboolean rv = gtk_tree_model_get_iter(GTK_TREE_MODEL(bm->left_store_),
1325 &iter, tree_path);
1326 DCHECK(rv);
1327 bm->model_->SetTitle(bm->GetNodeAt(GTK_TREE_MODEL(bm->left_store_), &iter),
1328 UTF8ToWide(new_folder_name));
1329 }
1330
1331 // static
1311 void BookmarkManagerGtk::OnImportItemActivated( 1332 void BookmarkManagerGtk::OnImportItemActivated(
1312 GtkMenuItem* menuitem, BookmarkManagerGtk* bm) { 1333 GtkMenuItem* menuitem, BookmarkManagerGtk* bm) {
1313 SelectFileDialog::FileTypeInfo file_type_info; 1334 SelectFileDialog::FileTypeInfo file_type_info;
1314 file_type_info.extensions.resize(1); 1335 file_type_info.extensions.resize(1);
1315 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html")); 1336 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html"));
1316 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm")); 1337 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm"));
1317 file_type_info.include_all_files = true; 1338 file_type_info.include_all_files = true;
1318 bm->select_file_dialog_->SelectFile( 1339 bm->select_file_dialog_->SelectFile(
1319 SelectFileDialog::SELECT_OPEN_FILE, string16(), 1340 SelectFileDialog::SELECT_OPEN_FILE, string16(),
1320 FilePath(""), &file_type_info, 0, 1341 FilePath(""), &file_type_info, 0,
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after
1418 modifier & gtk_accelerator_get_default_mod_mask()); 1439 modifier & gtk_accelerator_get_default_mod_mask());
1419 // The only accelerator we have registered is ctrl+w, so any other value is a 1440 // The only accelerator we have registered is ctrl+w, so any other value is a
1420 // non-fatal error. 1441 // non-fatal error.
1421 DCHECK_EQ(keyval, static_cast<guint>(GDK_w)); 1442 DCHECK_EQ(keyval, static_cast<guint>(GDK_w));
1422 DCHECK_EQ(modifier, GDK_CONTROL_MASK); 1443 DCHECK_EQ(modifier, GDK_CONTROL_MASK);
1423 1444
1424 gtk_widget_destroy(bookmark_manager->window_); 1445 gtk_widget_destroy(bookmark_manager->window_);
1425 1446
1426 return TRUE; 1447 return TRUE;
1427 } 1448 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/bookmark_manager_gtk.h ('k') | chrome/browser/gtk/bookmark_tree_model.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698