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

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: Address comments. 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..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

Powered by Google App Engine
This is Rietveld 408576698