OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/options/passwords_exceptions_page_gtk.h" | 5 #include "chrome/browser/ui/gtk/options/passwords_exceptions_page_gtk.h" |
6 | 6 |
7 #include <string> | 7 #include <string> |
8 | 8 |
9 #include "base/stl_util-inl.h" | 9 #include "base/stl_util-inl.h" |
10 #include "base/utf_string_conversions.h" | 10 #include "base/utf_string_conversions.h" |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 profile_->GetPrefs()->GetString(prefs::kAcceptLanguages); | 115 profile_->GetPrefs()->GetString(prefs::kAcceptLanguages); |
116 gtk_list_store_clear(exception_list_store_); | 116 gtk_list_store_clear(exception_list_store_); |
117 STLDeleteElements(&exception_list_); | 117 STLDeleteElements(&exception_list_); |
118 exception_list_ = result; | 118 exception_list_ = result; |
119 for (size_t i = 0; i < result.size(); ++i) { | 119 for (size_t i = 0; i < result.size(); ++i) { |
120 GtkTreeIter iter; | 120 GtkTreeIter iter; |
121 gtk_list_store_insert_with_values(exception_list_store_, &iter, (gint) i, | 121 gtk_list_store_insert_with_values(exception_list_store_, &iter, (gint) i, |
122 COL_SITE, | 122 COL_SITE, |
123 UTF16ToUTF8(net::FormatUrl(result[i]->origin, languages)).c_str(), -1); | 123 UTF16ToUTF8(net::FormatUrl(result[i]->origin, languages)).c_str(), -1); |
124 } | 124 } |
125 gtk_widget_set_sensitive(remove_all_button_, result.size() > 0); | 125 gtk_widget_set_sensitive(remove_all_button_, !result.empty()); |
126 } | 126 } |
127 | 127 |
128 void PasswordsExceptionsPageGtk::OnRemoveButtonClicked(GtkWidget* widget) { | 128 void PasswordsExceptionsPageGtk::OnRemoveButtonClicked(GtkWidget* widget) { |
129 GtkTreeIter iter; | 129 GtkTreeIter iter; |
130 if (!gtk_tree_selection_get_selected(exception_selection_, | 130 if (!gtk_tree_selection_get_selected(exception_selection_, |
131 NULL, &iter)) { | 131 NULL, &iter)) { |
132 NOTREACHED(); | 132 NOTREACHED(); |
133 return; | 133 return; |
134 } | 134 } |
135 | 135 |
136 GtkTreePath* path = gtk_tree_model_get_path( | 136 GtkTreePath* path = gtk_tree_model_get_path( |
137 GTK_TREE_MODEL(exception_list_sort_), &iter); | 137 GTK_TREE_MODEL(exception_list_sort_), &iter); |
138 gint index = gtk_tree::GetTreeSortChildRowNumForPath( | 138 gint index = gtk_tree::GetTreeSortChildRowNumForPath( |
139 exception_list_sort_, path); | 139 exception_list_sort_, path); |
140 gtk_tree_path_free(path); | 140 gtk_tree_path_free(path); |
141 | 141 |
142 GtkTreeIter child_iter; | 142 GtkTreeIter child_iter; |
143 gtk_tree_model_sort_convert_iter_to_child_iter( | 143 gtk_tree_model_sort_convert_iter_to_child_iter( |
144 GTK_TREE_MODEL_SORT(exception_list_sort_), &child_iter, &iter); | 144 GTK_TREE_MODEL_SORT(exception_list_sort_), &child_iter, &iter); |
145 | 145 |
146 // Remove from GTK list, DB, and vector. | 146 // Remove from GTK list, DB, and vector. |
147 gtk_list_store_remove(exception_list_store_, &child_iter); | 147 gtk_list_store_remove(exception_list_store_, &child_iter); |
148 GetPasswordStore()->RemoveLogin(*exception_list_[index]); | 148 GetPasswordStore()->RemoveLogin(*exception_list_[index]); |
149 delete exception_list_[index]; | 149 delete exception_list_[index]; |
150 exception_list_.erase(exception_list_.begin() + index); | 150 exception_list_.erase(exception_list_.begin() + index); |
151 | 151 |
152 gtk_widget_set_sensitive(remove_all_button_, exception_list_.size() > 0); | 152 gtk_widget_set_sensitive(remove_all_button_, !exception_list_.empty()); |
153 } | 153 } |
154 | 154 |
155 void PasswordsExceptionsPageGtk::OnRemoveAllButtonClicked(GtkWidget* widget) { | 155 void PasswordsExceptionsPageGtk::OnRemoveAllButtonClicked(GtkWidget* widget) { |
156 // Remove from GTK list, DB, and vector. | 156 // Remove from GTK list, DB, and vector. |
157 PasswordStore* store = GetPasswordStore(); | 157 PasswordStore* store = GetPasswordStore(); |
158 gtk_list_store_clear(exception_list_store_); | 158 gtk_list_store_clear(exception_list_store_); |
159 for (size_t i = 0; i < exception_list_.size(); ++i) | 159 for (size_t i = 0; i < exception_list_.size(); ++i) |
160 store->RemoveLogin(*exception_list_[i]); | 160 store->RemoveLogin(*exception_list_[i]); |
161 STLDeleteElements(&exception_list_); | 161 STLDeleteElements(&exception_list_); |
162 gtk_widget_set_sensitive(remove_all_button_, FALSE); | 162 gtk_widget_set_sensitive(remove_all_button_, FALSE); |
(...skipping 30 matching lines...) Expand all Loading... |
193 LOG(ERROR) << "No password store! Cannot display exceptions."; | 193 LOG(ERROR) << "No password store! Cannot display exceptions."; |
194 } | 194 } |
195 | 195 |
196 void | 196 void |
197 PasswordsExceptionsPageGtk::ExceptionListPopulater::OnPasswordStoreRequestDone( | 197 PasswordsExceptionsPageGtk::ExceptionListPopulater::OnPasswordStoreRequestDone( |
198 int handle, const std::vector<webkit_glue::PasswordForm*>& result) { | 198 int handle, const std::vector<webkit_glue::PasswordForm*>& result) { |
199 DCHECK_EQ(pending_login_query_, handle); | 199 DCHECK_EQ(pending_login_query_, handle); |
200 pending_login_query_ = 0; | 200 pending_login_query_ = 0; |
201 page_->SetExceptionList(result); | 201 page_->SetExceptionList(result); |
202 } | 202 } |
OLD | NEW |