Chromium Code Reviews| Index: chrome/browser/ui/views/payments/payment_request_item_list.cc |
| diff --git a/chrome/browser/ui/views/payments/payment_request_item_list.cc b/chrome/browser/ui/views/payments/payment_request_item_list.cc |
| index 0cb3ce8787a4746bb3c136eb20ca2ff38dfc3fe3..29dcc9e3f74187210053b30e4f4fa0ab335d539b 100644 |
| --- a/chrome/browser/ui/views/payments/payment_request_item_list.cc |
| +++ b/chrome/browser/ui/views/payments/payment_request_item_list.cc |
| @@ -10,7 +10,8 @@ |
| namespace payments { |
| -PaymentRequestItemList::Item::Item() {} |
| +PaymentRequestItemList::Item::Item(PaymentRequestItemList* list, bool selected) |
| + : list_(list), selected_(selected) {} |
| PaymentRequestItemList::Item::~Item() {} |
| @@ -23,12 +24,18 @@ views::View* PaymentRequestItemList::Item::GetItemView() { |
| return item_view_.get(); |
| } |
| +void PaymentRequestItemList::Item::set_selected(bool selected) { |
| + selected_ = selected; |
| + SelectedStateChanged(); |
| +} |
| + |
| PaymentRequestItemList::PaymentRequestItemList() {} |
| PaymentRequestItemList::~PaymentRequestItemList() {} |
| void PaymentRequestItemList::AddItem( |
| std::unique_ptr<PaymentRequestItemList::Item> item) { |
| + DCHECK_EQ(this, item->list()); |
| items_.push_back(std::move(item)); |
| } |
| @@ -46,4 +53,17 @@ std::unique_ptr<views::View> PaymentRequestItemList::CreateListView() { |
| return content_view; |
| } |
| +void PaymentRequestItemList::SelectItem(PaymentRequestItemList::Item* item) { |
|
Mathieu
2017/02/23 21:22:53
As a newcomer to this code, I keep having double t
anthonyvd
2017/02/23 21:49:20
Fair point. There's a bigger, overarching discussi
|
| + DCHECK_EQ(this, item->list()); |
| + // First, deselect the previously selected item |
|
Mathieu
2017/02/23 21:22:53
should we early abort if item->selected()
anthonyvd
2017/02/23 21:49:20
Done. Also realized naming both the parameter and
|
| + for (auto& item : items_) { |
| + if (item->selected()) { |
| + item->set_selected(false); |
| + break; // Only one item is ever selected |
| + } |
| + } |
| + |
| + item->set_selected(true); |
| +} |
| + |
| } // namespace payments |