| 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 98e777fb914d4aedac6a2e2333b1aa759b4a490c..ea2076a98fecc0adff174bb4fa242e50fe267d34 100644
|
| --- a/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
|
| +++ b/chrome/browser/ui/views/autofill/autofill_dialog_views.cc
|
| @@ -1933,10 +1933,6 @@ views::View* AutofillDialogViews::InitInputsView(DialogSection section) {
|
| l10n_util::GetStringUTF16(input.placeholder_text_rid),
|
| this);
|
|
|
| - gfx::Image icon =
|
| - delegate_->IconForField(input.type, input.initial_value);
|
| - field->SetIcon(icon);
|
| -
|
| textfields->insert(std::make_pair(&input, field));
|
| view_to_add.reset(field);
|
| }
|
| @@ -1978,6 +1974,8 @@ views::View* AutofillDialogViews::InitInputsView(DialogSection section) {
|
| 1, 0);
|
| }
|
|
|
| + SetIconsForSection(section);
|
| +
|
| return view;
|
| }
|
|
|
| @@ -1996,11 +1994,8 @@ void AutofillDialogViews::UpdateSectionImpl(
|
| if (text_mapping != group->textfields.end()) {
|
| DecoratedTextfield* decorated = text_mapping->second;
|
| decorated->SetEnabled(input.editable);
|
| - if (decorated->text().empty() || clobber_inputs) {
|
| + if (decorated->text().empty() || clobber_inputs)
|
| decorated->SetText(iter->initial_value);
|
| - decorated->SetIcon(
|
| - delegate_->IconForField(input.type, decorated->text()));
|
| - }
|
| }
|
|
|
| ComboboxMap::iterator combo_mapping = group->comboboxes.find(&input);
|
| @@ -2019,6 +2014,7 @@ void AutofillDialogViews::UpdateSectionImpl(
|
| }
|
| }
|
|
|
| + SetIconsForSection(section);
|
| UpdateDetailsGroupState(*group);
|
| }
|
|
|
| @@ -2237,7 +2233,7 @@ void AutofillDialogViews::TextfieldEditedOrActivated(
|
| SetValidityForInput<DecoratedTextfield>(
|
| decorated,
|
| delegate_->InputValidityMessage(group->section, type,
|
| - textfield->text()));
|
| + textfield->text()));
|
|
|
| // If the field transitioned from invalid to valid, re-validate the group,
|
| // since inter-field checks become meaningful with valid fields.
|
| @@ -2245,8 +2241,8 @@ void AutofillDialogViews::TextfieldEditedOrActivated(
|
| ValidateGroup(*group, VALIDATE_EDIT);
|
| }
|
|
|
| - gfx::Image icon = delegate_->IconForField(type, textfield->text());
|
| - decorated->SetIcon(icon);
|
| + if (delegate_->FieldControlsIcons(type))
|
| + SetIconsForSection(group->section);
|
| }
|
|
|
| void AutofillDialogViews::UpdateButtonStripExtraView() {
|
| @@ -2339,6 +2335,30 @@ bool AutofillDialogViews::SignInWebviewDictatesHeight() const {
|
| (sign_in_webview_->web_contents() && delegate_->ShouldShowSpinner());
|
| }
|
|
|
| +void AutofillDialogViews::SetIconsForSection(DialogSection section) {
|
| + DetailOutputMap user_input;
|
| + GetUserInput(section, &user_input);
|
| + FieldValueMap field_values;
|
| + for (DetailOutputMap::const_iterator user_input_it = user_input.begin();
|
| + user_input_it != user_input.end();
|
| + ++user_input_it) {
|
| + const DetailInput* field_detail = user_input_it->first;
|
| + const string16& field_value = user_input_it->second;
|
| + field_values[field_detail->type] = field_value;
|
| + }
|
| + FieldIconMap field_icons = delegate_->IconsForFields(field_values);
|
| + TextfieldMap* textfields = &GroupForSection(section)->textfields;
|
| + for (TextfieldMap::const_iterator textfield_it = textfields->begin();
|
| + textfield_it != textfields->end();
|
| + ++textfield_it) {
|
| + ServerFieldType field_type = textfield_it->first->type;
|
| + FieldIconMap::const_iterator field_icon_it = field_icons.find(field_type);
|
| + DecoratedTextfield* textfield = textfield_it->second;
|
| + textfield->SetIcon(field_icon_it == field_icons.end() ?
|
| + gfx::Image() : field_icon_it->second);
|
| + }
|
| +}
|
| +
|
| AutofillDialogViews::DetailsGroup::DetailsGroup(DialogSection section)
|
| : section(section),
|
| container(NULL),
|
|
|