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

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

Issue 2759253002: [Web Payments] Implement item selection in lists. (Closed)
Patch Set: Assert back navigation in browser tests. Created 3 years, 9 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 b85a64b9c00d7526323c2d128488dc154cb08294..0835b86c69eb8f35b91615fa3456e34adc51d609 100644
--- a/chrome/browser/ui/views/payments/payment_request_item_list.cc
+++ b/chrome/browser/ui/views/payments/payment_request_item_list.cc
@@ -40,7 +40,7 @@ views::View* PaymentRequestItemList::Item::GetItemView() {
return item_view_.get();
}
-void PaymentRequestItemList::Item::SetSelected(bool selected) {
+void PaymentRequestItemList::Item::SetSelected(bool selected, bool notify) {
selected_ = selected;
// This could be called before CreateItemView, so before |checkmark_| is
@@ -48,7 +48,8 @@ void PaymentRequestItemList::Item::SetSelected(bool selected) {
if (checkmark_)
checkmark_->SetVisible(selected_);
- SelectedStateChanged();
+ if (notify)
+ SelectedStateChanged();
}
std::unique_ptr<views::ImageView> PaymentRequestItemList::Item::CreateCheckmark(
@@ -127,8 +128,11 @@ void PaymentRequestItemList::AddItem(
std::unique_ptr<PaymentRequestItemList::Item> item) {
DCHECK_EQ(this, item->list());
items_.push_back(std::move(item));
- if (items_.back()->selected())
- SelectItem(items_.back().get());
+ if (items_.back()->selected()) {
+ if (selected_item_)
+ selected_item_->SetSelected(/*selected=*/false, /*notify=*/false);
+ selected_item_ = items_.back().get();
+ }
}
std::unique_ptr<views::View> PaymentRequestItemList::CreateListView() {
@@ -153,7 +157,7 @@ void PaymentRequestItemList::SelectItem(PaymentRequestItemList::Item* item) {
UnselectSelectedItem();
selected_item_ = item;
- item->SetSelected(true);
+ item->SetSelected(/*selected=*/true, /*notify=*/true);
}
void PaymentRequestItemList::UnselectSelectedItem() {
@@ -161,7 +165,7 @@ void PaymentRequestItemList::UnselectSelectedItem() {
// creation or in the middle of the selection operation when the previously
// selected item has been deselected but the new one isn't selected yet.
if (selected_item_)
- selected_item_->SetSelected(false);
+ selected_item_->SetSelected(/*selected=*/false, /*notify=*/true);
selected_item_ = nullptr;
}

Powered by Google App Engine
This is Rietveld 408576698