| 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_manager_gtk.h" | 5 #include "chrome/browser/gtk/bookmark_manager_gtk.h" |
| 6 | 6 |
| 7 #include <vector> | 7 #include <vector> |
| 8 | 8 |
| 9 #include "app/l10n_util.h" | 9 #include "app/l10n_util.h" |
| 10 #include "app/resource_bundle.h" | 10 #include "app/resource_bundle.h" |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 256 } | 256 } |
| 257 gtk_list_store_remove(right_store_, &iter); | 257 gtk_list_store_remove(right_store_, &iter); |
| 258 } | 258 } |
| 259 } | 259 } |
| 260 | 260 |
| 261 // BookmarkManagerGtk, private ------------------------------------------------- | 261 // BookmarkManagerGtk, private ------------------------------------------------- |
| 262 | 262 |
| 263 BookmarkManagerGtk::BookmarkManagerGtk(Profile* profile) | 263 BookmarkManagerGtk::BookmarkManagerGtk(Profile* profile) |
| 264 : profile_(profile), | 264 : profile_(profile), |
| 265 model_(profile->GetBookmarkModel()), | 265 model_(profile->GetBookmarkModel()), |
| 266 organize_is_for_left_(true), |
| 266 search_factory_(this), | 267 search_factory_(this), |
| 267 select_file_dialog_(SelectFileDialog::Create(this)) { | 268 select_file_dialog_(SelectFileDialog::Create(this)) { |
| 268 InitWidgets(); | 269 InitWidgets(); |
| 269 g_signal_connect(window_, "destroy", | 270 g_signal_connect(window_, "destroy", |
| 270 G_CALLBACK(OnWindowDestroy), this); | 271 G_CALLBACK(OnWindowDestroy), this); |
| 271 | 272 |
| 272 model_->AddObserver(this); | 273 model_->AddObserver(this); |
| 273 if (model_->IsLoaded()) | 274 if (model_->IsLoaded()) |
| 274 Loaded(model_); | 275 Loaded(model_); |
| 275 | 276 |
| 276 gtk_widget_show_all(window_); | 277 gtk_widget_show_all(window_); |
| 277 } | 278 } |
| 278 | 279 |
| 279 BookmarkManagerGtk::~BookmarkManagerGtk() { | 280 BookmarkManagerGtk::~BookmarkManagerGtk() { |
| 280 model_->RemoveObserver(this); | 281 model_->RemoveObserver(this); |
| 281 } | 282 } |
| 282 | 283 |
| 283 void BookmarkManagerGtk::InitWidgets() { | 284 void BookmarkManagerGtk::InitWidgets() { |
| 284 window_ = gtk_window_new(GTK_WINDOW_TOPLEVEL); | 285 window_ = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 285 gtk_window_set_title(GTK_WINDOW(window_), | 286 gtk_window_set_title(GTK_WINDOW(window_), |
| 286 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_TITLE).c_str()); | 287 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_TITLE).c_str()); |
| 287 // TODO(estade): use dimensions based on | 288 // TODO(estade): use dimensions based on |
| 288 // IDS_BOOKMARK_MANAGER_DIALOG_WIDTH_CHARS and | 289 // IDS_BOOKMARK_MANAGER_DIALOG_WIDTH_CHARS and |
| 289 // IDS_BOOKMARK_MANAGER_DIALOG_HEIGHT_LINES. | 290 // IDS_BOOKMARK_MANAGER_DIALOG_HEIGHT_LINES. |
| 290 gtk_window_set_default_size(GTK_WINDOW(window_), 640, 480); | 291 gtk_window_set_default_size(GTK_WINDOW(window_), 640, 480); |
| 291 | 292 |
| 292 std::vector<BookmarkNode*> nodes; | |
| 293 organize_menu_.reset(new BookmarkContextMenu(window_, profile_, NULL, NULL, | |
| 294 NULL, nodes, BookmarkContextMenu::BOOKMARK_MANAGER_ORGANIZE_MENU)); | |
| 295 | |
| 296 // Build the organize and tools menus. | 293 // Build the organize and tools menus. |
| 297 GtkWidget* organize = gtk_menu_item_new_with_label( | 294 organize_ = gtk_menu_item_new_with_label( |
| 298 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_ORGANIZE_MENU).c_str()); | 295 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_ORGANIZE_MENU).c_str()); |
| 299 gtk_menu_item_set_submenu(GTK_MENU_ITEM(organize), organize_menu_->menu()); | |
| 300 | 296 |
| 301 GtkWidget* import_item = gtk_menu_item_new_with_mnemonic( | 297 GtkWidget* import_item = gtk_menu_item_new_with_mnemonic( |
| 302 gtk_util::ConvertAcceleratorsFromWindowsStyle( | 298 gtk_util::ConvertAcceleratorsFromWindowsStyle( |
| 303 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_IMPORT_MENU)).c_str()); | 299 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_IMPORT_MENU)).c_str()); |
| 304 g_signal_connect(import_item, "activate", | 300 g_signal_connect(import_item, "activate", |
| 305 G_CALLBACK(OnImportItemActivated), this); | 301 G_CALLBACK(OnImportItemActivated), this); |
| 306 | 302 |
| 307 GtkWidget* export_item = gtk_menu_item_new_with_mnemonic( | 303 GtkWidget* export_item = gtk_menu_item_new_with_mnemonic( |
| 308 gtk_util::ConvertAcceleratorsFromWindowsStyle( | 304 gtk_util::ConvertAcceleratorsFromWindowsStyle( |
| 309 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_EXPORT_MENU)).c_str()); | 305 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_EXPORT_MENU)).c_str()); |
| 310 g_signal_connect(export_item, "activate", | 306 g_signal_connect(export_item, "activate", |
| 311 G_CALLBACK(OnExportItemActivated), this); | 307 G_CALLBACK(OnExportItemActivated), this); |
| 312 | 308 |
| 313 GtkWidget* tools_menu = gtk_menu_new(); | 309 GtkWidget* tools_menu = gtk_menu_new(); |
| 314 gtk_menu_shell_append(GTK_MENU_SHELL(tools_menu), import_item); | 310 gtk_menu_shell_append(GTK_MENU_SHELL(tools_menu), import_item); |
| 315 gtk_menu_shell_append(GTK_MENU_SHELL(tools_menu), export_item); | 311 gtk_menu_shell_append(GTK_MENU_SHELL(tools_menu), export_item); |
| 316 | 312 |
| 317 GtkWidget* tools = gtk_menu_item_new_with_label( | 313 GtkWidget* tools = gtk_menu_item_new_with_label( |
| 318 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_TOOLS_MENU).c_str()); | 314 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_TOOLS_MENU).c_str()); |
| 319 gtk_menu_item_set_submenu(GTK_MENU_ITEM(tools), tools_menu); | 315 gtk_menu_item_set_submenu(GTK_MENU_ITEM(tools), tools_menu); |
| 320 | 316 |
| 321 GtkWidget* menu_bar = gtk_menu_bar_new(); | 317 GtkWidget* menu_bar = gtk_menu_bar_new(); |
| 322 gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), organize); | 318 gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), organize_); |
| 323 gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), tools); | 319 gtk_menu_shell_append(GTK_MENU_SHELL(menu_bar), tools); |
| 324 SetMenuBarStyle(); | 320 SetMenuBarStyle(); |
| 325 gtk_widget_set_name(menu_bar, "chrome-bm-menubar"); | 321 gtk_widget_set_name(menu_bar, "chrome-bm-menubar"); |
| 326 | 322 |
| 327 GtkWidget* search_label = gtk_label_new( | 323 GtkWidget* search_label = gtk_label_new( |
| 328 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_SEARCH_TITLE).c_str()); | 324 l10n_util::GetStringUTF8(IDS_BOOKMARK_MANAGER_SEARCH_TITLE).c_str()); |
| 329 search_entry_ = gtk_entry_new(); | 325 search_entry_ = gtk_entry_new(); |
| 330 g_signal_connect(search_entry_, "changed", | 326 g_signal_connect(search_entry_, "changed", |
| 331 G_CALLBACK(OnSearchTextChangedThunk), this); | 327 G_CALLBACK(OnSearchTextChangedThunk), this); |
| 332 | 328 |
| (...skipping 11 matching lines...) Expand all Loading... |
| 344 // when it first shows (depending on the WM, this may or may not be the value | 340 // when it first shows (depending on the WM, this may or may not be the value |
| 345 // we set below in gtk_window_set_size()). | 341 // we set below in gtk_window_set_size()). |
| 346 gtk_paned_set_position(GTK_PANED(paned), 200); | 342 gtk_paned_set_position(GTK_PANED(paned), 200); |
| 347 gtk_paned_pack1(GTK_PANED(paned), left_pane, FALSE, FALSE); | 343 gtk_paned_pack1(GTK_PANED(paned), left_pane, FALSE, FALSE); |
| 348 gtk_paned_pack2(GTK_PANED(paned), right_pane, TRUE, FALSE); | 344 gtk_paned_pack2(GTK_PANED(paned), right_pane, TRUE, FALSE); |
| 349 | 345 |
| 350 GtkWidget* vbox = gtk_vbox_new(FALSE, 0); | 346 GtkWidget* vbox = gtk_vbox_new(FALSE, 0); |
| 351 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | 347 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
| 352 gtk_box_pack_start(GTK_BOX(vbox), paned, TRUE, TRUE, 0); | 348 gtk_box_pack_start(GTK_BOX(vbox), paned, TRUE, TRUE, 0); |
| 353 gtk_container_add(GTK_CONTAINER(window_), vbox); | 349 gtk_container_add(GTK_CONTAINER(window_), vbox); |
| 350 |
| 351 ResetOrganizeMenu(true); |
| 354 } | 352 } |
| 355 | 353 |
| 356 GtkWidget* BookmarkManagerGtk::MakeLeftPane() { | 354 GtkWidget* BookmarkManagerGtk::MakeLeftPane() { |
| 357 left_store_ = bookmark_utils::MakeFolderTreeStore(); | 355 left_store_ = bookmark_utils::MakeFolderTreeStore(); |
| 358 | 356 |
| 359 GtkTreeViewColumn* icon_column = gtk_tree_view_column_new_with_attributes( | 357 GtkTreeViewColumn* icon_column = gtk_tree_view_column_new_with_attributes( |
| 360 "", gtk_cell_renderer_pixbuf_new(), "pixbuf", bookmark_utils::FOLDER_ICON, | 358 "", gtk_cell_renderer_pixbuf_new(), "pixbuf", bookmark_utils::FOLDER_ICON, |
| 361 NULL); | 359 NULL); |
| 362 GtkTreeViewColumn* name_column = gtk_tree_view_column_new_with_attributes( | 360 GtkTreeViewColumn* name_column = gtk_tree_view_column_new_with_attributes( |
| 363 "", gtk_cell_renderer_text_new(), "text", bookmark_utils::FOLDER_NAME, | 361 "", gtk_cell_renderer_text_new(), "text", bookmark_utils::FOLDER_NAME, |
| 364 NULL); | 362 NULL); |
| 365 | 363 |
| 366 left_tree_view_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(left_store_)); | 364 left_tree_view_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(left_store_)); |
| 367 // Let |tree_view| own the store. | 365 // Let |tree_view| own the store. |
| 368 g_object_unref(left_store_); | 366 g_object_unref(left_store_); |
| 369 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(left_tree_view_), FALSE); | 367 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(left_tree_view_), FALSE); |
| 370 gtk_tree_view_append_column(GTK_TREE_VIEW(left_tree_view_), icon_column); | 368 gtk_tree_view_append_column(GTK_TREE_VIEW(left_tree_view_), icon_column); |
| 371 gtk_tree_view_append_column(GTK_TREE_VIEW(left_tree_view_), name_column); | 369 gtk_tree_view_append_column(GTK_TREE_VIEW(left_tree_view_), name_column); |
| 372 // When a row is collapsed that contained the selected node, we want to select | 370 // When a row is collapsed that contained the selected node, we want to select |
| 373 // it. | 371 // it. |
| 374 g_signal_connect(left_tree_view_, "row-collapsed", | 372 g_signal_connect(left_tree_view_, "row-collapsed", |
| 375 G_CALLBACK(OnLeftTreeViewRowCollapsed), this); | 373 G_CALLBACK(OnLeftTreeViewRowCollapsed), this); |
| 374 g_signal_connect(left_tree_view_, "focus-in-event", |
| 375 G_CALLBACK(OnLeftTreeViewFocusIn), this); |
| 376 | 376 |
| 377 // The left side is only a drag destination (not a source). | 377 // The left side is only a drag destination (not a source). |
| 378 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP, | 378 gtk_drag_dest_set(left_tree_view_, GTK_DEST_DEFAULT_DROP, |
| 379 bookmark_utils::kTargetTable, | 379 bookmark_utils::kTargetTable, |
| 380 bookmark_utils::kTargetTableSize, | 380 bookmark_utils::kTargetTableSize, |
| 381 GDK_ACTION_MOVE); | 381 GDK_ACTION_MOVE); |
| 382 | 382 |
| 383 g_signal_connect(left_tree_view_, "drag-data-received", | 383 g_signal_connect(left_tree_view_, "drag-data-received", |
| 384 G_CALLBACK(&OnLeftTreeViewDragReceived), this); | 384 G_CALLBACK(&OnLeftTreeViewDragReceived), this); |
| 385 g_signal_connect(left_tree_view_, "drag-motion", | 385 g_signal_connect(left_tree_view_, "drag-motion", |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 right_tree_view_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(right_store_)); | 420 right_tree_view_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(right_store_)); |
| 421 // Let |tree_view| own the store. | 421 // Let |tree_view| own the store. |
| 422 g_object_unref(right_store_); | 422 g_object_unref(right_store_); |
| 423 gtk_tree_view_append_column(GTK_TREE_VIEW(right_tree_view_), title_column); | 423 gtk_tree_view_append_column(GTK_TREE_VIEW(right_tree_view_), title_column); |
| 424 gtk_tree_view_append_column(GTK_TREE_VIEW(right_tree_view_), url_column); | 424 gtk_tree_view_append_column(GTK_TREE_VIEW(right_tree_view_), url_column); |
| 425 gtk_tree_view_append_column(GTK_TREE_VIEW(right_tree_view_), path_column_); | 425 gtk_tree_view_append_column(GTK_TREE_VIEW(right_tree_view_), path_column_); |
| 426 g_signal_connect(right_tree_view_, "row-activated", | 426 g_signal_connect(right_tree_view_, "row-activated", |
| 427 G_CALLBACK(OnRightTreeViewRowActivated), this); | 427 G_CALLBACK(OnRightTreeViewRowActivated), this); |
| 428 g_signal_connect(right_selection(), "changed", | 428 g_signal_connect(right_selection(), "changed", |
| 429 G_CALLBACK(OnRightSelectionChanged), this); | 429 G_CALLBACK(OnRightSelectionChanged), this); |
| 430 g_signal_connect(right_tree_view_, "focus-in-event", |
| 431 G_CALLBACK(OnRightTreeViewFocusIn), this); |
| 430 | 432 |
| 431 // We don't advertise GDK_ACTION_COPY, but since we don't explicitly do | 433 // We don't advertise GDK_ACTION_COPY, but since we don't explicitly do |
| 432 // any deleting following a succesful move, this should work. | 434 // any deleting following a succesful move, this should work. |
| 433 gtk_drag_source_set(right_tree_view_, | 435 gtk_drag_source_set(right_tree_view_, |
| 434 GDK_BUTTON1_MASK, | 436 GDK_BUTTON1_MASK, |
| 435 bookmark_utils::kTargetTable, | 437 bookmark_utils::kTargetTable, |
| 436 bookmark_utils::kTargetTableSize, | 438 bookmark_utils::kTargetTableSize, |
| 437 GDK_ACTION_MOVE); | 439 GDK_ACTION_MOVE); |
| 438 | 440 |
| 439 // We connect to drag dest signals, but we don't actually enable the widget | 441 // We connect to drag dest signals, but we don't actually enable the widget |
| (...skipping 11 matching lines...) Expand all Loading... |
| 451 GtkWidget* scrolled = gtk_scrolled_window_new(NULL, NULL); | 453 GtkWidget* scrolled = gtk_scrolled_window_new(NULL, NULL); |
| 452 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), | 454 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled), |
| 453 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | 455 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); |
| 454 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), | 456 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled), |
| 455 GTK_SHADOW_ETCHED_IN); | 457 GTK_SHADOW_ETCHED_IN); |
| 456 gtk_container_add(GTK_CONTAINER(scrolled), right_tree_view_); | 458 gtk_container_add(GTK_CONTAINER(scrolled), right_tree_view_); |
| 457 | 459 |
| 458 return scrolled; | 460 return scrolled; |
| 459 } | 461 } |
| 460 | 462 |
| 463 void BookmarkManagerGtk::ResetOrganizeMenu(bool left) { |
| 464 organize_is_for_left_ = left; |
| 465 BookmarkNode* parent = GetFolder(); |
| 466 std::vector<BookmarkNode*> nodes; |
| 467 if (!left) |
| 468 nodes = GetRightSelection(); |
| 469 else if (parent) |
| 470 nodes.push_back(parent); |
| 471 |
| 472 organize_menu_.reset(new BookmarkContextMenu(window_, profile_, NULL, NULL, |
| 473 parent, nodes, BookmarkContextMenu::BOOKMARK_MANAGER_ORGANIZE_MENU)); |
| 474 gtk_menu_item_set_submenu(GTK_MENU_ITEM(organize_), organize_menu_->menu()); |
| 475 } |
| 476 |
| 461 void BookmarkManagerGtk::BuildLeftStore() { | 477 void BookmarkManagerGtk::BuildLeftStore() { |
| 462 GtkTreeIter select_iter; | 478 GtkTreeIter select_iter; |
| 463 bookmark_utils::AddToTreeStore(model_, | 479 bookmark_utils::AddToTreeStore(model_, |
| 464 model_->GetBookmarkBarNode()->id(), left_store_, &select_iter); | 480 model_->GetBookmarkBarNode()->id(), left_store_, &select_iter); |
| 465 gtk_tree_selection_select_iter(left_selection(), &select_iter); | 481 gtk_tree_selection_select_iter(left_selection(), &select_iter); |
| 466 | 482 |
| 467 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 483 ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |
| 468 gtk_tree_store_append(left_store_, &select_iter, NULL); | 484 gtk_tree_store_append(left_store_, &select_iter, NULL); |
| 469 gtk_tree_store_set(left_store_, &select_iter, | 485 gtk_tree_store_set(left_store_, &select_iter, |
| 470 bookmark_utils::FOLDER_ICON, | 486 bookmark_utils::FOLDER_ICON, |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 kSearchDelayMS); | 694 kSearchDelayMS); |
| 679 } | 695 } |
| 680 | 696 |
| 681 // static | 697 // static |
| 682 void BookmarkManagerGtk::OnLeftSelectionChanged(GtkTreeSelection* selection, | 698 void BookmarkManagerGtk::OnLeftSelectionChanged(GtkTreeSelection* selection, |
| 683 BookmarkManagerGtk* bm) { | 699 BookmarkManagerGtk* bm) { |
| 684 // Sometimes we won't have a selection for a short period of time | 700 // Sometimes we won't have a selection for a short period of time |
| 685 // (specifically, when the user collapses an ancestor of the selected row). | 701 // (specifically, when the user collapses an ancestor of the selected row). |
| 686 // The context menu and right store will momentarily be stale, but we should | 702 // The context menu and right store will momentarily be stale, but we should |
| 687 // presently receive another selection changed event that will refresh them. | 703 // presently receive another selection changed event that will refresh them. |
| 688 if (gtk_tree_selection_count_selected_rows(bm->left_selection()) == 0) | 704 if (gtk_tree_selection_count_selected_rows(selection) == 0) |
| 689 return; | 705 return; |
| 690 | 706 |
| 691 BookmarkNode* parent = bm->GetFolder(); | 707 bm->ResetOrganizeMenu(true); |
| 692 | |
| 693 // Update the context menu. | |
| 694 bm->organize_menu_->set_parent(parent); | |
| 695 std::vector<BookmarkNode*> nodes; | |
| 696 if (parent) | |
| 697 nodes.push_back(parent); | |
| 698 bm->organize_menu_->set_selection(nodes); | |
| 699 | |
| 700 bm->BuildRightStore(); | 708 bm->BuildRightStore(); |
| 701 } | 709 } |
| 702 | 710 |
| 703 // static | 711 // static |
| 704 void BookmarkManagerGtk::OnRightSelectionChanged(GtkTreeSelection* selection, | 712 void BookmarkManagerGtk::OnRightSelectionChanged(GtkTreeSelection* selection, |
| 705 BookmarkManagerGtk* bookmark_manager) { | 713 BookmarkManagerGtk* bookmark_manager) { |
| 706 // Update the context menu. | 714 if (gtk_tree_selection_count_selected_rows(selection) == 0) |
| 707 bookmark_manager->organize_menu_->set_selection( | 715 return; |
| 708 bookmark_manager->GetRightSelection()); | 716 |
| 717 bookmark_manager->ResetOrganizeMenu(false); |
| 709 } | 718 } |
| 710 | 719 |
| 711 // statuc | 720 // statuc |
| 712 void BookmarkManagerGtk::OnLeftTreeViewDragReceived( | 721 void BookmarkManagerGtk::OnLeftTreeViewDragReceived( |
| 713 GtkWidget* tree_view, GdkDragContext* context, gint x, gint y, | 722 GtkWidget* tree_view, GdkDragContext* context, gint x, gint y, |
| 714 GtkSelectionData* selection_data, guint target_type, guint time, | 723 GtkSelectionData* selection_data, guint target_type, guint time, |
| 715 BookmarkManagerGtk* bm) { | 724 BookmarkManagerGtk* bm) { |
| 716 gboolean dnd_success = FALSE; | 725 gboolean dnd_success = FALSE; |
| 717 gboolean delete_selection_data = FALSE; | 726 gboolean delete_selection_data = FALSE; |
| 718 | 727 |
| (...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 914 return; | 923 return; |
| 915 if (nodes.size() == 1 && nodes[0]->is_folder()) { | 924 if (nodes.size() == 1 && nodes[0]->is_folder()) { |
| 916 // Double click on a folder descends into the folder. | 925 // Double click on a folder descends into the folder. |
| 917 bm->SelectInTree(nodes[0], false); | 926 bm->SelectInTree(nodes[0], false); |
| 918 return; | 927 return; |
| 919 } | 928 } |
| 920 bookmark_utils::OpenAll(bm->window_, bm->profile_, NULL, nodes, CURRENT_TAB); | 929 bookmark_utils::OpenAll(bm->window_, bm->profile_, NULL, nodes, CURRENT_TAB); |
| 921 } | 930 } |
| 922 | 931 |
| 923 // static | 932 // static |
| 933 void BookmarkManagerGtk::OnLeftTreeViewFocusIn(GtkTreeView* tree_view, |
| 934 GdkEventFocus* event, BookmarkManagerGtk* bm) { |
| 935 if (!bm->organize_is_for_left_) |
| 936 bm->ResetOrganizeMenu(true); |
| 937 } |
| 938 |
| 939 // static |
| 940 void BookmarkManagerGtk::OnRightTreeViewFocusIn(GtkTreeView* tree_view, |
| 941 GdkEventFocus* event, BookmarkManagerGtk* bm) { |
| 942 if (bm->organize_is_for_left_) |
| 943 bm->ResetOrganizeMenu(false); |
| 944 } |
| 945 |
| 946 // static |
| 924 void BookmarkManagerGtk::OnImportItemActivated(GtkMenuItem* menuitem, | 947 void BookmarkManagerGtk::OnImportItemActivated(GtkMenuItem* menuitem, |
| 925 BookmarkManagerGtk* bm) { | 948 BookmarkManagerGtk* bm) { |
| 926 SelectFileDialog::FileTypeInfo file_type_info; | 949 SelectFileDialog::FileTypeInfo file_type_info; |
| 927 file_type_info.extensions.resize(1); | 950 file_type_info.extensions.resize(1); |
| 928 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html")); | 951 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("html")); |
| 929 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm")); | 952 file_type_info.extensions[0].push_back(FILE_PATH_LITERAL("htm")); |
| 930 file_type_info.include_all_files = true; | 953 file_type_info.include_all_files = true; |
| 931 bm->select_file_dialog_->SelectFile( | 954 bm->select_file_dialog_->SelectFile( |
| 932 SelectFileDialog::SELECT_OPEN_FILE, string16(), | 955 SelectFileDialog::SELECT_OPEN_FILE, string16(), |
| 933 FilePath(""), &file_type_info, 0, | 956 FilePath(""), &file_type_info, 0, |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 970 } else if (id == IDS_BOOKMARK_MANAGER_EXPORT_MENU) { | 993 } else if (id == IDS_BOOKMARK_MANAGER_EXPORT_MENU) { |
| 971 if (g_browser_process->io_thread()) { | 994 if (g_browser_process->io_thread()) { |
| 972 bookmark_html_writer::WriteBookmarks( | 995 bookmark_html_writer::WriteBookmarks( |
| 973 g_browser_process->io_thread()->message_loop(), model_, | 996 g_browser_process->io_thread()->message_loop(), model_, |
| 974 path.ToWStringHack()); | 997 path.ToWStringHack()); |
| 975 } | 998 } |
| 976 } else { | 999 } else { |
| 977 NOTREACHED(); | 1000 NOTREACHED(); |
| 978 } | 1001 } |
| 979 } | 1002 } |
| OLD | NEW |