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..9a03fcfd0d8c20a697ab2363e30bfb5f5de99415 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::SetSelected(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,20 @@ std::unique_ptr<views::View> PaymentRequestItemList::CreateListView() { |
| return content_view; |
| } |
| +void PaymentRequestItemList::SelectItem(PaymentRequestItemList::Item* item) { |
| + DCHECK_EQ(this, item->list()); |
| + if (item->selected()) |
| + return; |
| + |
| + // First, deselect the previously selected item |
|
please use gerrit instead
2017/02/24 14:56:53
nit: consider having a selected_item_ pointer in t
anthonyvd
2017/02/24 16:36:57
Done.
|
| + for (auto& i : items_) { |
| + if (i->selected()) { |
| + i->SetSelected(false); |
| + break; // Only one item is ever selected |
| + } |
| + } |
| + |
| + item->SetSelected(true); |
| +} |
| + |
| } // namespace payments |