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

Unified Diff: chrome/browser/ui/views/payments/payment_request_item_list.cc

Issue 2711973002: [Web Payments] Implement the credit card selection UI functionality. (Closed)
Patch Set: Created 3 years, 10 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698