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

Side by Side Diff: chrome/browser/ui/autofill/autofill_popup_controller_impl.cc

Issue 1134793004: Autofill item deletion on android (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: test fix Created 5 years, 7 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
OLDNEW
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/autofill/autofill_popup_controller_impl.h" 5 #include "chrome/browser/ui/autofill/autofill_popup_controller_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 const base::string16& AutofillPopupControllerImpl::GetElidedValueAt( 410 const base::string16& AutofillPopupControllerImpl::GetElidedValueAt(
411 size_t row) const { 411 size_t row) const {
412 return elided_values_[row]; 412 return elided_values_[row];
413 } 413 }
414 414
415 const base::string16& AutofillPopupControllerImpl::GetElidedLabelAt( 415 const base::string16& AutofillPopupControllerImpl::GetElidedLabelAt(
416 size_t row) const { 416 size_t row) const {
417 return elided_labels_[row]; 417 return elided_labels_[row];
418 } 418 }
419 419
420 bool AutofillPopupControllerImpl::GetRemovalConfirmationText(
421 int list_index,
422 base::string16* title,
423 base::string16* body) {
424 return delegate_->GetDeletionConfirmationText(
425 suggestions_[list_index].value, suggestions_[list_index].frontend_id,
426 title, body);
427 }
428
429 bool AutofillPopupControllerImpl::RemoveSuggestion(int list_index) {
430 if (!delegate_->RemoveSuggestion(suggestions_[list_index].value,
431 suggestions_[list_index].frontend_id)) {
432 return false;
433 }
434
435 // Remove the deleted element.
436 suggestions_.erase(suggestions_.begin() + list_index);
437 elided_values_.erase(elided_values_.begin() + list_index);
438 elided_labels_.erase(elided_labels_.begin() + list_index);
439
440 SetSelectedLine(kNoSelection);
441
442 if (HasSuggestions()) {
443 delegate_->ClearPreviewedForm();
444 UpdateBoundsAndRedrawPopup();
445 } else {
446 Hide();
447 }
448
449 return true;
450 }
451
420 #if !defined(OS_ANDROID) 452 #if !defined(OS_ANDROID)
421 const gfx::FontList& AutofillPopupControllerImpl::GetValueFontListForRow( 453 const gfx::FontList& AutofillPopupControllerImpl::GetValueFontListForRow(
422 size_t index) const { 454 size_t index) const {
423 if (suggestions_[index].frontend_id == POPUP_ITEM_ID_WARNING_MESSAGE) 455 if (suggestions_[index].frontend_id == POPUP_ITEM_ID_WARNING_MESSAGE)
424 return warning_font_list_; 456 return warning_font_list_;
425 457
426 if (suggestions_[index].frontend_id == POPUP_ITEM_ID_TITLE) 458 if (suggestions_[index].frontend_id == POPUP_ITEM_ID_TITLE)
427 return title_font_list_; 459 return title_font_list_;
428 460
429 return value_font_list_; 461 return value_font_list_;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 524
493 SetSelectedLine(new_selected_line); 525 SetSelectedLine(new_selected_line);
494 } 526 }
495 527
496 bool AutofillPopupControllerImpl::RemoveSelectedLine() { 528 bool AutofillPopupControllerImpl::RemoveSelectedLine() {
497 if (selected_line_ == kNoSelection) 529 if (selected_line_ == kNoSelection)
498 return false; 530 return false;
499 531
500 DCHECK_GE(selected_line_, 0); 532 DCHECK_GE(selected_line_, 0);
501 DCHECK_LT(selected_line_, static_cast<int>(GetLineCount())); 533 DCHECK_LT(selected_line_, static_cast<int>(GetLineCount()));
502 534 return RemoveSuggestion(selected_line_);
503 if (!delegate_->RemoveSuggestion(suggestions_[selected_line_].value,
504 suggestions_[selected_line_].frontend_id)) {
505 return false;
506 }
507
508 // Remove the deleted element.
509 suggestions_.erase(suggestions_.begin() + selected_line_);
510 elided_values_.erase(elided_values_.begin() + selected_line_);
511 elided_labels_.erase(elided_labels_.begin() + selected_line_);
512
513 SetSelectedLine(kNoSelection);
514
515 if (HasSuggestions()) {
516 delegate_->ClearPreviewedForm();
517 UpdateBoundsAndRedrawPopup();
518 } else {
519 Hide();
520 }
521
522 return true;
523 } 535 }
524 536
525 int AutofillPopupControllerImpl::LineFromY(int y) { 537 int AutofillPopupControllerImpl::LineFromY(int y) {
526 int current_height = kPopupBorderThickness; 538 int current_height = kPopupBorderThickness;
527 539
528 for (size_t i = 0; i < suggestions_.size(); ++i) { 540 for (size_t i = 0; i < suggestions_.size(); ++i) {
529 current_height += GetRowHeightFromId(suggestions_[i].frontend_id); 541 current_height += GetRowHeightFromId(suggestions_[i].frontend_id);
530 542
531 if (y <= current_height) 543 if (y <= current_height)
532 return i; 544 return i;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
648 popup_bounds_ = gfx::Rect(); 660 popup_bounds_ = gfx::Rect();
649 661
650 suggestions_.clear(); 662 suggestions_.clear();
651 elided_values_.clear(); 663 elided_values_.clear();
652 elided_labels_.clear(); 664 elided_labels_.clear();
653 665
654 selected_line_ = kNoSelection; 666 selected_line_ = kNoSelection;
655 } 667 }
656 668
657 } // namespace autofill 669 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698