OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/ui/gtk/collected_cookies_gtk.h" | 5 #include "chrome/browser/ui/gtk/collected_cookies_gtk.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 #include "base/prefs/pref_service.h" | 8 #include "base/prefs/pref_service.h" |
9 #include "chrome/browser/browsing_data/browsing_data_appcache_helper.h" | 9 #include "chrome/browser/browsing_data/browsing_data_appcache_helper.h" |
10 #include "chrome/browser/browsing_data/browsing_data_cookie_helper.h" | 10 #include "chrome/browser/browsing_data/browsing_data_cookie_helper.h" |
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_START); | 259 gtk_button_box_set_layout(GTK_BUTTON_BOX(button_box), GTK_BUTTONBOX_START); |
260 gtk_box_set_spacing(GTK_BOX(button_box), ui::kControlSpacing); | 260 gtk_box_set_spacing(GTK_BOX(button_box), ui::kControlSpacing); |
261 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), button_box, FALSE, FALSE, | 261 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), button_box, FALSE, FALSE, |
262 ui::kControlSpacing); | 262 ui::kControlSpacing); |
263 block_allowed_cookie_button_ = gtk_button_new_with_label( | 263 block_allowed_cookie_button_ = gtk_button_new_with_label( |
264 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_BLOCK_BUTTON).c_str()); | 264 l10n_util::GetStringUTF8(IDS_COLLECTED_COOKIES_BLOCK_BUTTON).c_str()); |
265 g_signal_connect(block_allowed_cookie_button_, "clicked", | 265 g_signal_connect(block_allowed_cookie_button_, "clicked", |
266 G_CALLBACK(OnBlockAllowedButtonClickedThunk), this); | 266 G_CALLBACK(OnBlockAllowedButtonClickedThunk), this); |
267 gtk_container_add(GTK_CONTAINER(button_box), block_allowed_cookie_button_); | 267 gtk_container_add(GTK_CONTAINER(button_box), block_allowed_cookie_button_); |
268 | 268 |
| 269 delete_allowed_cookie_button_ = gtk_button_new_with_label( |
| 270 l10n_util::GetStringUTF8(IDS_COOKIES_REMOVE_LABEL).c_str()); |
| 271 g_signal_connect(delete_allowed_cookie_button_, "clicked", |
| 272 G_CALLBACK(OnDeleteAllowedButtonClickedThunk), this); |
| 273 gtk_container_add(GTK_CONTAINER(button_box), delete_allowed_cookie_button_); |
| 274 |
269 // Wrap the vbox inside an hbox so that we can specify padding along the | 275 // Wrap the vbox inside an hbox so that we can specify padding along the |
270 // horizontal axis. | 276 // horizontal axis. |
271 GtkWidget* box = gtk_hbox_new(FALSE, 0); | 277 GtkWidget* box = gtk_hbox_new(FALSE, 0); |
272 gtk_box_pack_start(GTK_BOX(box), cookie_list_vbox, TRUE, TRUE, | 278 gtk_box_pack_start(GTK_BOX(box), cookie_list_vbox, TRUE, TRUE, |
273 ui::kControlSpacing); | 279 ui::kControlSpacing); |
274 return box; | 280 return box; |
275 } | 281 } |
276 | 282 |
277 GtkWidget* CollectedCookiesGtk::CreateBlockedPane() { | 283 GtkWidget* CollectedCookiesGtk::CreateBlockedPane() { |
278 PrefService* prefs = Profile::FromBrowserContext( | 284 PrefService* prefs = Profile::FromBrowserContext( |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
430 return contains_host_node; | 436 return contains_host_node; |
431 } | 437 } |
432 | 438 |
433 void CollectedCookiesGtk::EnableControls() { | 439 void CollectedCookiesGtk::EnableControls() { |
434 // Update button states. | 440 // Update button states. |
435 bool enable_for_allowed_cookies = | 441 bool enable_for_allowed_cookies = |
436 SelectionContainsHostNode(allowed_selection_, | 442 SelectionContainsHostNode(allowed_selection_, |
437 allowed_cookies_tree_adapter_.get()); | 443 allowed_cookies_tree_adapter_.get()); |
438 gtk_widget_set_sensitive(block_allowed_cookie_button_, | 444 gtk_widget_set_sensitive(block_allowed_cookie_button_, |
439 enable_for_allowed_cookies); | 445 enable_for_allowed_cookies); |
| 446 gtk_widget_set_sensitive( |
| 447 delete_allowed_cookie_button_, |
| 448 gtk_tree_selection_count_selected_rows(allowed_selection_) > 0); |
440 | 449 |
441 bool enable_for_blocked_cookies = | 450 bool enable_for_blocked_cookies = |
442 SelectionContainsHostNode(blocked_selection_, | 451 SelectionContainsHostNode(blocked_selection_, |
443 blocked_cookies_tree_adapter_.get()); | 452 blocked_cookies_tree_adapter_.get()); |
444 gtk_widget_set_sensitive(allow_blocked_cookie_button_, | 453 gtk_widget_set_sensitive(allow_blocked_cookie_button_, |
445 enable_for_blocked_cookies); | 454 enable_for_blocked_cookies); |
446 gtk_widget_set_sensitive(for_session_blocked_cookie_button_, | 455 gtk_widget_set_sensitive(for_session_blocked_cookie_button_, |
447 enable_for_blocked_cookies); | 456 enable_for_blocked_cookies); |
448 } | 457 } |
449 | 458 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
502 gtk_widget_show(infobar_); | 511 gtk_widget_show(infobar_); |
503 } | 512 } |
504 status_changed_ = true; | 513 status_changed_ = true; |
505 } | 514 } |
506 | 515 |
507 void CollectedCookiesGtk::OnBlockAllowedButtonClicked(GtkWidget* button) { | 516 void CollectedCookiesGtk::OnBlockAllowedButtonClicked(GtkWidget* button) { |
508 AddExceptions(allowed_selection_, allowed_cookies_tree_adapter_.get(), | 517 AddExceptions(allowed_selection_, allowed_cookies_tree_adapter_.get(), |
509 CONTENT_SETTING_BLOCK); | 518 CONTENT_SETTING_BLOCK); |
510 } | 519 } |
511 | 520 |
| 521 void CollectedCookiesGtk::OnDeleteAllowedButtonClicked(GtkWidget* button) { |
| 522 GtkTreeModel* model; |
| 523 GList* paths = gtk_tree_selection_get_selected_rows( |
| 524 allowed_selection_, &model); |
| 525 for (GList* item = paths; item; item = item->next) { |
| 526 GtkTreeIter iter; |
| 527 gtk_tree_model_get_iter( |
| 528 model, &iter, reinterpret_cast<GtkTreePath*>(item->data)); |
| 529 CookieTreeNode* node = static_cast<CookieTreeNode*>( |
| 530 allowed_cookies_tree_adapter_->GetNode(&iter)); |
| 531 allowed_cookies_tree_model_->DeleteCookieNode(node); |
| 532 } |
| 533 } |
| 534 |
512 void CollectedCookiesGtk::OnAllowBlockedButtonClicked(GtkWidget* button) { | 535 void CollectedCookiesGtk::OnAllowBlockedButtonClicked(GtkWidget* button) { |
513 AddExceptions(blocked_selection_, blocked_cookies_tree_adapter_.get(), | 536 AddExceptions(blocked_selection_, blocked_cookies_tree_adapter_.get(), |
514 CONTENT_SETTING_ALLOW); | 537 CONTENT_SETTING_ALLOW); |
515 } | 538 } |
516 | 539 |
517 void CollectedCookiesGtk::OnForSessionBlockedButtonClicked(GtkWidget* button) { | 540 void CollectedCookiesGtk::OnForSessionBlockedButtonClicked(GtkWidget* button) { |
518 AddExceptions(blocked_selection_, blocked_cookies_tree_adapter_.get(), | 541 AddExceptions(blocked_selection_, blocked_cookies_tree_adapter_.get(), |
519 CONTENT_SETTING_SESSION_ONLY); | 542 CONTENT_SETTING_SESSION_ONLY); |
520 } | 543 } |
521 | 544 |
(...skipping 16 matching lines...) Expand all Loading... |
538 } | 561 } |
539 | 562 |
540 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) { | 563 void CollectedCookiesGtk::OnTreeViewSelectionChange(GtkWidget* selection) { |
541 EnableControls(); | 564 EnableControls(); |
542 ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); | 565 ShowCookieInfo(gtk_notebook_get_current_page(GTK_NOTEBOOK(notebook_))); |
543 } | 566 } |
544 | 567 |
545 void CollectedCookiesGtk::OnDestroy(GtkWidget* widget) { | 568 void CollectedCookiesGtk::OnDestroy(GtkWidget* widget) { |
546 delete this; | 569 delete this; |
547 } | 570 } |
OLD | NEW |