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

Side by Side Diff: chrome/browser/views/autofill_profiles_view_win.cc

Issue 2828014: AutoFill: Add support for multi-select and delete. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 10 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/views/autofill_profiles_view_win.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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 #include "chrome/browser/views/autofill_profiles_view_win.h" 4 #include "chrome/browser/views/autofill_profiles_view_win.h"
5 5
6 #include <vsstyle.h> 6 #include <vsstyle.h>
7 #include <vssym32.h> 7 #include <vssym32.h>
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 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 EditableSetViewContents *edit_view = new 156 EditableSetViewContents *edit_view = new
157 EditableSetViewContents(this, &billing_model_, false, it); 157 EditableSetViewContents(this, &billing_model_, false, it);
158 views::Window::CreateChromeWindow(window()->GetNativeWindow(), gfx::Rect(), 158 views::Window::CreateChromeWindow(window()->GetNativeWindow(), gfx::Rect(),
159 edit_view); 159 edit_view);
160 edit_view->window()->Show(); 160 edit_view->window()->Show();
161 } 161 }
162 162
163 void AutoFillProfilesView::DeleteClicked() { 163 void AutoFillProfilesView::DeleteClicked() {
164 DCHECK(scroll_view_); 164 DCHECK(scroll_view_);
165 DCHECK(table_model_.get()); 165 DCHECK(table_model_.get());
166 int selected_item_index = scroll_view_->FirstSelectedRow(); 166 DCHECK_GT(scroll_view_->SelectedRowCount(), 0);
167 DCHECK(selected_item_index >= 0); 167 int last_view_row = -1;
168 table_model_->RemoveItem(selected_item_index); 168 for (views::TableView::iterator i = scroll_view_->SelectionBegin();
169 i != scroll_view_->SelectionEnd(); ++i) {
170 last_view_row = scroll_view_->ModelToView(*i);
171 table_model_->RemoveItem(*i);
172 }
173 if (last_view_row >= table_model_->RowCount())
174 last_view_row = table_model_->RowCount() - 1;
175 if (last_view_row >= 0)
176 scroll_view_->Select(scroll_view_->ViewToModel(last_view_row));
169 UpdateButtonState(); 177 UpdateButtonState();
170 } 178 }
171 179
172 void AutoFillProfilesView::UpdateButtonState() { 180 void AutoFillProfilesView::UpdateButtonState() {
173 DCHECK(personal_data_manager_); 181 DCHECK(personal_data_manager_);
174 DCHECK(scroll_view_); 182 DCHECK(scroll_view_);
175 DCHECK(add_address_button_); 183 DCHECK(add_address_button_);
176 DCHECK(add_credit_card_button_); 184 DCHECK(add_credit_card_button_);
177 DCHECK(edit_button_); 185 DCHECK(edit_button_);
178 DCHECK(remove_button_); 186 DCHECK(remove_button_);
179 add_address_button_->SetEnabled(personal_data_manager_->IsDataLoaded() && 187 add_address_button_->SetEnabled(personal_data_manager_->IsDataLoaded() &&
180 !child_dialog_opened_); 188 !child_dialog_opened_);
181 add_credit_card_button_->SetEnabled(personal_data_manager_->IsDataLoaded() && 189 add_credit_card_button_->SetEnabled(personal_data_manager_->IsDataLoaded() &&
182 !child_dialog_opened_); 190 !child_dialog_opened_);
183 191
184 int selected_item_index = scroll_view_->FirstSelectedRow(); 192 int selected_row_count = scroll_view_->SelectedRowCount();
185 edit_button_->SetEnabled(selected_item_index >= 0 && !child_dialog_opened_); 193 edit_button_->SetEnabled(selected_row_count == 1 && !child_dialog_opened_);
186 remove_button_->SetEnabled(selected_item_index >= 0 && !child_dialog_opened_); 194 remove_button_->SetEnabled(selected_row_count > 0 && !child_dialog_opened_);
187 } 195 }
188 196
189 void AutoFillProfilesView::ChildWindowOpened() { 197 void AutoFillProfilesView::ChildWindowOpened() {
190 child_dialog_opened_ = true; 198 child_dialog_opened_ = true;
191 UpdateButtonState(); 199 UpdateButtonState();
192 } 200 }
193 201
194 void AutoFillProfilesView::ChildWindowClosed() { 202 void AutoFillProfilesView::ChildWindowClosed() {
195 child_dialog_opened_ = false; 203 child_dialog_opened_ = false;
196 UpdateButtonState(); 204 UpdateButtonState();
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
376 std::vector<TableColumn> columns; 384 std::vector<TableColumn> columns;
377 columns.resize(2); 385 columns.resize(2);
378 columns[0] = TableColumn(IDS_AUTOFILL_LIST_HEADER_LABEL, 386 columns[0] = TableColumn(IDS_AUTOFILL_LIST_HEADER_LABEL,
379 TableColumn::LEFT, -1, .33f); 387 TableColumn::LEFT, -1, .33f);
380 columns.back().sortable = false; 388 columns.back().sortable = false;
381 columns[1] = TableColumn(IDS_AUTOFILL_LIST_HEADER_SUMMARY, 389 columns[1] = TableColumn(IDS_AUTOFILL_LIST_HEADER_SUMMARY,
382 TableColumn::LEFT, -1, .67f); 390 TableColumn::LEFT, -1, .67f);
383 columns.back().sortable = false; 391 columns.back().sortable = false;
384 392
385 scroll_view_ = new views::TableView(table_model_.get(), columns, 393 scroll_view_ = new views::TableView(table_model_.get(), columns,
386 views::TEXT_ONLY, true, true, true); 394 views::TEXT_ONLY, false, true, true);
387 scroll_view_->SetObserver(this); 395 scroll_view_->SetObserver(this);
388 396
389 add_address_button_ = new views::NativeButton(this, 397 add_address_button_ = new views::NativeButton(this,
390 l10n_util::GetString(IDS_AUTOFILL_ADD_ADDRESS_BUTTON)); 398 l10n_util::GetString(IDS_AUTOFILL_ADD_ADDRESS_BUTTON));
391 add_credit_card_button_ = new views::NativeButton(this, 399 add_credit_card_button_ = new views::NativeButton(this,
392 l10n_util::GetString(IDS_AUTOFILL_ADD_CREDITCARD_BUTTON)); 400 l10n_util::GetString(IDS_AUTOFILL_ADD_CREDITCARD_BUTTON));
393 edit_button_ = new views::NativeButton(this, 401 edit_button_ = new views::NativeButton(this,
394 l10n_util::GetString(IDS_AUTOFILL_EDIT_BUTTON)); 402 l10n_util::GetString(IDS_AUTOFILL_EDIT_BUTTON));
395 remove_button_ = new views::NativeButton(this, 403 remove_button_ = new views::NativeButton(this,
396 l10n_util::GetString(IDS_AUTOFILL_DELETE_BUTTON)); 404 l10n_util::GetString(IDS_AUTOFILL_DELETE_BUTTON));
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after
1367 // AutoFill dialog, she doesn't need to be asked to enable or disable 1375 // AutoFill dialog, she doesn't need to be asked to enable or disable
1368 // AutoFill. 1376 // AutoFill.
1369 profile->GetPrefs()->SetBoolean(prefs::kAutoFillInfoBarShown, true); 1377 profile->GetPrefs()->SetBoolean(prefs::kAutoFillInfoBarShown, true);
1370 1378
1371 PersonalDataManager* personal_data_manager = 1379 PersonalDataManager* personal_data_manager =
1372 profile->GetPersonalDataManager(); 1380 profile->GetPersonalDataManager();
1373 DCHECK(personal_data_manager); 1381 DCHECK(personal_data_manager);
1374 AutoFillProfilesView::Show(parent, observer, personal_data_manager, 1382 AutoFillProfilesView::Show(parent, observer, personal_data_manager,
1375 profile->GetPrefs(), imported_profile, imported_credit_card); 1383 profile->GetPrefs(), imported_profile, imported_credit_card);
1376 } 1384 }
OLDNEW
« no previous file with comments | « chrome/browser/views/autofill_profiles_view_win.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698