| Index: chrome/browser/ui/views/autofill/autofill_dialog_views.cc
|
| diff --git a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
|
| index a73c469be9ce994f6b4438891639dac506189fe7..25af2dce381c4cac5daf0dfe460f8c49b2446f8f 100644
|
| --- a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
|
| +++ b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
|
| @@ -237,8 +237,10 @@ void AutofillDialogViews::AccountChooser::LinkClicked(views::Link* source,
|
|
|
| // AutofillDialogViews::NotificationArea ---------------------------------------
|
|
|
| -AutofillDialogViews::NotificationArea::NotificationArea()
|
| - : checkbox_(NULL) {
|
| +AutofillDialogViews::NotificationArea::NotificationArea(
|
| + AutofillDialogController* controller)
|
| + : controller_(controller),
|
| + checkbox_(NULL) {
|
| // Reserve vertical space for the arrow (regardless of whether one exists).
|
| set_border(views::Border::CreateEmptyBorder(kArrowHeight, 0, 0, 0));
|
|
|
| @@ -253,8 +255,6 @@ void AutofillDialogViews::NotificationArea::SetNotifications(
|
| const std::vector<DialogNotification>& notifications) {
|
| notifications_ = notifications;
|
|
|
| - // Default checkbox to checked. Preserve checkbox state if it already exists.
|
| - bool checkbox_state = checkbox_ ? checkbox_->checked() : true;
|
| RemoveAllChildViews(true);
|
| checkbox_ = NULL;
|
|
|
| @@ -275,7 +275,6 @@ void AutofillDialogViews::NotificationArea::SetNotifications(
|
| kNotificationPadding,
|
| kNotificationPadding,
|
| kNotificationPadding));
|
| - checkbox->SetChecked(checkbox_state);
|
| if (!notification.interactive())
|
| checkbox->SetState(views::Button::STATE_DISABLED);
|
| checkbox->SetText(notification.display_text());
|
| @@ -283,6 +282,8 @@ void AutofillDialogViews::NotificationArea::SetNotifications(
|
| checkbox->set_alignment(views::TextButtonBase::ALIGN_LEFT);
|
| checkbox->SetEnabledColor(notification.GetTextColor());
|
| checkbox->SetHoverColor(notification.GetTextColor());
|
| + checkbox->SetChecked(notification.checked());
|
| + checkbox->set_listener(this);
|
| view.reset(checkbox.release());
|
| } else {
|
| scoped_ptr<views::Label> label(new views::Label());
|
| @@ -304,10 +305,6 @@ void AutofillDialogViews::NotificationArea::SetNotifications(
|
| PreferredSizeChanged();
|
| }
|
|
|
| -bool AutofillDialogViews::NotificationArea::CheckboxIsChecked() const {
|
| - return checkbox_ && checkbox_->checked();
|
| -}
|
| -
|
| std::string AutofillDialogViews::NotificationArea::GetClassName() const {
|
| return kNotificationAreaClassName;
|
| }
|
| @@ -332,6 +329,13 @@ void AutofillDialogViews::NotificationArea::OnPaint(gfx::Canvas* canvas) {
|
| }
|
| }
|
|
|
| +void AutofillDialogViews::NotificationArea::ButtonPressed(
|
| + views::Button* sender, const ui::Event& event) {
|
| + DCHECK_EQ(sender, checkbox_);
|
| + controller_->NotificationCheckboxStateChanged(notifications_.front().type(),
|
| + checkbox_->checked());
|
| +}
|
| +
|
| bool AutofillDialogViews::NotificationArea::HasArrow() {
|
| return !notifications_.empty() && notifications_[0].HasArrow() &&
|
| arrow_centering_anchor_.get();
|
| @@ -704,10 +708,6 @@ bool AutofillDialogViews::UseBillingForShipping() {
|
| return use_billing_for_shipping_->checked();
|
| }
|
|
|
| -bool AutofillDialogViews::SaveDetailsInWallet() {
|
| - return notification_area_->CheckboxIsChecked();
|
| -}
|
| -
|
| bool AutofillDialogViews::SaveDetailsLocally() {
|
| return save_in_chrome_checkbox_->checked();
|
| }
|
| @@ -1004,7 +1004,7 @@ views::View* AutofillDialogViews::CreateMainContainer() {
|
| if (!views::DialogDelegate::UseNewStyle())
|
| main_container_->AddChildView(account_chooser_);
|
|
|
| - notification_area_ = new NotificationArea();
|
| + notification_area_ = new NotificationArea(controller_);
|
| notification_area_->set_arrow_centering_anchor(account_chooser_->AsWeakPtr());
|
| main_container_->AddChildView(notification_area_);
|
|
|
|
|