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

Side by Side Diff: chrome/browser/gtk/options/cookies_view.cc

Issue 173331: More Gtk Cookies View polish. (Closed)
Patch Set: Remove column from list_store too. Created 11 years, 4 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/options/cookies_view.h ('k') | no next file » | 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/options/cookies_view.h" 5 #include "chrome/browser/gtk/options/cookies_view.h"
6 6
7 #include <set> 7 #include <set>
8 #include <string> 8 #include <string>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
11 #include "base/gfx/gtk_util.h" 11 #include "base/gfx/gtk_util.h"
12 #include "base/message_loop.h" 12 #include "base/message_loop.h"
13 #include "base/string_util.h" 13 #include "base/string_util.h"
14 #include "base/time_format.h" 14 #include "base/time_format.h"
15 #include "chrome/browser/cookies_table_model.h" 15 #include "chrome/browser/cookies_table_model.h"
16 #include "chrome/common/gtk_util.h" 16 #include "chrome/common/gtk_util.h"
17 #include "grit/generated_resources.h" 17 #include "grit/generated_resources.h"
18 #include "third_party/skia/include/core/SkBitmap.h"
19 18
20 namespace { 19 namespace {
21 20
22 // Initial size for dialog. 21 // Initial size for dialog.
23 const int kDialogDefaultWidth = 550; 22 const int kDialogDefaultWidth = 550;
24 const int kDialogDefaultHeight = 550; 23 const int kDialogDefaultHeight = 550;
25 const int kSiteColumnInitialSize = 300; 24 const int kSiteColumnInitialSize = 300;
26 25
27 // Delay after entering filter text before filtering occurs. 26 // Delay after entering filter text before filtering occurs.
28 const int kSearchFilterDelayMs = 500; 27 const int kSearchFilterDelayMs = 100;
29 28
30 // Response ids for our custom buttons. 29 // Response ids for our custom buttons.
31 enum { 30 enum {
32 RESPONSE_REMOVE = 1, 31 RESPONSE_REMOVE = 1,
33 RESPONSE_REMOVE_ALL 32 RESPONSE_REMOVE_ALL
34 }; 33 };
35 34
36 // The currently open cookie manager, if any. 35 // The currently open cookie manager, if any.
37 CookiesView* instance_ = NULL; 36 CookiesView* instance_ = NULL;
38 37
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 void CookiesView::Init() { 78 void CookiesView::Init() {
80 dialog_ = gtk_dialog_new_with_buttons( 79 dialog_ = gtk_dialog_new_with_buttons(
81 l10n_util::GetStringUTF8(IDS_COOKIES_WINDOW_TITLE).c_str(), 80 l10n_util::GetStringUTF8(IDS_COOKIES_WINDOW_TITLE).c_str(),
82 NULL, 81 NULL,
83 GTK_DIALOG_NO_SEPARATOR, 82 GTK_DIALOG_NO_SEPARATOR,
84 GTK_STOCK_CLOSE, 83 GTK_STOCK_CLOSE,
85 GTK_RESPONSE_CLOSE, 84 GTK_RESPONSE_CLOSE,
86 NULL); 85 NULL);
87 gtk_util::SetWindowIcon(GTK_WINDOW(dialog_)); 86 gtk_util::SetWindowIcon(GTK_WINDOW(dialog_));
88 87
89 remove_button_ = gtk_dialog_add_button( 88 remove_button_ = gtk_util::AddButtonToDialog(
90 GTK_DIALOG(dialog_), 89 dialog_,
91 gtk_util::ConvertAcceleratorsFromWindowsStyle( 90 gtk_util::ConvertAcceleratorsFromWindowsStyle(
92 l10n_util::GetStringUTF8(IDS_COOKIES_REMOVE_LABEL)).c_str(), 91 l10n_util::GetStringUTF8(IDS_COOKIES_REMOVE_LABEL)).c_str(),
92 GTK_STOCK_REMOVE,
93 RESPONSE_REMOVE); 93 RESPONSE_REMOVE);
94 gtk_button_box_set_child_secondary( 94 gtk_button_box_set_child_secondary(
95 GTK_BUTTON_BOX(GTK_DIALOG(dialog_)->action_area), 95 GTK_BUTTON_BOX(GTK_DIALOG(dialog_)->action_area),
96 remove_button_, 96 remove_button_,
97 TRUE); 97 TRUE);
98 98
99 remove_all_button_ = gtk_dialog_add_button( 99 remove_all_button_ = gtk_util::AddButtonToDialog(
100 GTK_DIALOG(dialog_), 100 dialog_,
101 gtk_util::ConvertAcceleratorsFromWindowsStyle( 101 gtk_util::ConvertAcceleratorsFromWindowsStyle(
102 l10n_util::GetStringUTF8(IDS_COOKIES_REMOVE_ALL_LABEL)).c_str(), 102 l10n_util::GetStringUTF8(IDS_COOKIES_REMOVE_ALL_LABEL)).c_str(),
103 GTK_STOCK_CLEAR,
103 RESPONSE_REMOVE_ALL); 104 RESPONSE_REMOVE_ALL);
104 gtk_button_box_set_child_secondary( 105 gtk_button_box_set_child_secondary(
105 GTK_BUTTON_BOX(GTK_DIALOG(dialog_)->action_area), 106 GTK_BUTTON_BOX(GTK_DIALOG(dialog_)->action_area),
106 remove_all_button_, 107 remove_all_button_,
107 TRUE); 108 TRUE);
108 109
109 gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_CLOSE); 110 gtk_dialog_set_default_response(GTK_DIALOG(dialog_), GTK_RESPONSE_CLOSE);
110 gtk_window_set_default_size(GTK_WINDOW(dialog_), kDialogDefaultWidth, 111 gtk_window_set_default_size(GTK_WINDOW(dialog_), kDialogDefaultWidth,
111 kDialogDefaultHeight); 112 kDialogDefaultHeight);
112 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox), 113 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(dialog_)->vbox),
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
150 151
151 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL); 152 GtkWidget* scroll_window = gtk_scrolled_window_new(NULL, NULL);
152 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window), 153 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll_window),
153 GTK_POLICY_AUTOMATIC, 154 GTK_POLICY_AUTOMATIC,
154 GTK_POLICY_AUTOMATIC); 155 GTK_POLICY_AUTOMATIC);
155 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window), 156 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scroll_window),
156 GTK_SHADOW_ETCHED_IN); 157 GTK_SHADOW_ETCHED_IN);
157 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0); 158 gtk_box_pack_start(GTK_BOX(cookie_list_vbox), scroll_window, TRUE, TRUE, 0);
158 159
159 list_store_ = gtk_list_store_new(COL_COUNT, 160 list_store_ = gtk_list_store_new(COL_COUNT,
160 GDK_TYPE_PIXBUF,
161 G_TYPE_STRING, 161 G_TYPE_STRING,
162 G_TYPE_STRING); 162 G_TYPE_STRING);
163 list_sort_ = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(list_store_)); 163 list_sort_ = gtk_tree_model_sort_new_with_model(GTK_TREE_MODEL(list_store_));
164 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(list_sort_), 164 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(list_sort_),
165 COL_SITE, CompareSite, this, NULL); 165 COL_SITE, CompareSite, this, NULL);
166 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(list_sort_), 166 gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(list_sort_),
167 COL_COOKIE_NAME, CompareCookieName, this, 167 COL_COOKIE_NAME, CompareCookieName, this,
168 NULL); 168 NULL);
169 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(list_sort_), 169 gtk_tree_sortable_set_sort_column_id(GTK_TREE_SORTABLE(list_sort_),
170 COL_SITE, GTK_SORT_ASCENDING); 170 COL_SITE, GTK_SORT_ASCENDING);
171 tree_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_sort_)); 171 tree_ = gtk_tree_view_new_with_model(GTK_TREE_MODEL(list_sort_));
172 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_), TRUE); 172 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tree_), TRUE);
173 gtk_container_add(GTK_CONTAINER(scroll_window), tree_); 173 gtk_container_add(GTK_CONTAINER(scroll_window), tree_);
174 174
175 GtkTreeViewColumn* site_column = gtk_tree_view_column_new(); 175 GtkTreeViewColumn* site_column = gtk_tree_view_column_new();
176 GtkCellRenderer* pixbuf_renderer = gtk_cell_renderer_pixbuf_new();
177 gtk_tree_view_column_pack_start(site_column, pixbuf_renderer, FALSE);
178 gtk_tree_view_column_add_attribute(site_column, pixbuf_renderer, "pixbuf",
179 COL_ICON);
180 GtkCellRenderer* site_renderer = gtk_cell_renderer_text_new(); 176 GtkCellRenderer* site_renderer = gtk_cell_renderer_text_new();
181 gtk_tree_view_column_pack_start(site_column, site_renderer, TRUE); 177 gtk_tree_view_column_pack_start(site_column, site_renderer, TRUE);
182 gtk_tree_view_column_add_attribute(site_column, site_renderer, "text", 178 gtk_tree_view_column_add_attribute(site_column, site_renderer, "text",
183 COL_SITE); 179 COL_SITE);
184 gtk_tree_view_column_set_title( 180 gtk_tree_view_column_set_title(
185 site_column, l10n_util::GetStringUTF8( 181 site_column, l10n_util::GetStringUTF8(
186 IDS_COOKIES_DOMAIN_COLUMN_HEADER).c_str()); 182 IDS_COOKIES_DOMAIN_COLUMN_HEADER).c_str());
187 gtk_tree_view_column_set_sort_column_id(site_column, COL_SITE); 183 gtk_tree_view_column_set_sort_column_id(site_column, COL_SITE);
188 gtk_tree_view_column_set_sizing(site_column, GTK_TREE_VIEW_COLUMN_FIXED); 184 gtk_tree_view_column_set_sizing(site_column, GTK_TREE_VIEW_COLUMN_FIXED);
189 gtk_tree_view_column_set_resizable(site_column, TRUE); 185 gtk_tree_view_column_set_resizable(site_column, TRUE);
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 selected != selected_rows.rend(); ++selected) { 359 selected != selected_rows.rend(); ++selected) {
364 cookies_table_model_->RemoveCookies(*selected, 1); 360 cookies_table_model_->RemoveCookies(*selected, 1);
365 } 361 }
366 } 362 }
367 363
368 void CookiesView::OnAnyModelUpdate() { 364 void CookiesView::OnAnyModelUpdate() {
369 EnableControls(); 365 EnableControls();
370 } 366 }
371 367
372 void CookiesView::SetColumnValues(int row, GtkTreeIter* iter) { 368 void CookiesView::SetColumnValues(int row, GtkTreeIter* iter) {
373 SkBitmap bitmap = cookies_table_model_->GetIcon(row);
374 GdkPixbuf* pixbuf = gfx::GdkPixbufFromSkBitmap(&bitmap);
375 std::wstring site = cookies_table_model_->GetText( 369 std::wstring site = cookies_table_model_->GetText(
376 row, IDS_COOKIES_DOMAIN_COLUMN_HEADER); 370 row, IDS_COOKIES_DOMAIN_COLUMN_HEADER);
377 std::wstring name = cookies_table_model_->GetText( 371 std::wstring name = cookies_table_model_->GetText(
378 row, IDS_COOKIES_NAME_COLUMN_HEADER); 372 row, IDS_COOKIES_NAME_COLUMN_HEADER);
379 gtk_list_store_set(list_store_, iter, 373 gtk_list_store_set(list_store_, iter,
380 COL_ICON, pixbuf,
381 COL_SITE, WideToUTF8(site).c_str(), 374 COL_SITE, WideToUTF8(site).c_str(),
382 COL_COOKIE_NAME, WideToUTF8(name).c_str(), 375 COL_COOKIE_NAME, WideToUTF8(name).c_str(),
383 -1); 376 -1);
384 g_object_unref(pixbuf);
385 } 377 }
386 378
387 // Compare the value of the given column at the given rows. 379 // Compare the value of the given column at the given rows.
388 gint CookiesView::CompareRows(GtkTreeModel* model, GtkTreeIter* a, 380 gint CookiesView::CompareRows(GtkTreeModel* model, GtkTreeIter* a,
389 GtkTreeIter* b, int column_id) { 381 GtkTreeIter* b, int column_id) {
390 int row1 = gtk_tree::GetRowNumForIter(model, a); 382 int row1 = gtk_tree::GetRowNumForIter(model, a);
391 int row2 = gtk_tree::GetRowNumForIter(model, b); 383 int row2 = gtk_tree::GetRowNumForIter(model, b);
392 return cookies_table_model_->CompareValues(row1, row2, column_id); 384 return cookies_table_model_->CompareValues(row1, row2, column_id);
393 } 385 }
394 386
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
452 window->EnableControls(); 444 window->EnableControls();
453 } 445 }
454 446
455 // static 447 // static
456 void CookiesView::OnFilterClearButtonClicked(GtkButton* button, 448 void CookiesView::OnFilterClearButtonClicked(GtkButton* button,
457 CookiesView* window) { 449 CookiesView* window) {
458 gtk_entry_set_text(GTK_ENTRY(window->filter_entry_), ""); 450 gtk_entry_set_text(GTK_ENTRY(window->filter_entry_), "");
459 window->filter_update_factory_.RevokeAll(); 451 window->filter_update_factory_.RevokeAll();
460 window->UpdateFilterResults(); 452 window->UpdateFilterResults();
461 } 453 }
OLDNEW
« no previous file with comments | « chrome/browser/gtk/options/cookies_view.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698