Chromium Code Reviews| Index: chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc |
| diff --git a/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc b/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc |
| index 8da3ab47bd39194b7c2c3eb122ae500284dc6021..6705bd903c0a1afabdb5d68f18ddc3867230b432 100644 |
| --- a/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc |
| +++ b/chrome/browser/ui/views/passwords/manage_passwords_bubble_view.cc |
| @@ -186,6 +186,12 @@ class ManagePasswordsBubbleView::AccountChooserView |
| // views::ButtonListener: |
| void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
| + // Adds |password_forms| to the |layout| remembering their |type|. |
| + void AddCredentialItemsWithState( |
|
vasilii
2015/01/21 17:47:35
What is the meaning of State here?
With type proba
melandory
2015/01/22 10:47:34
Done.
|
| + views::GridLayout* layout, |
|
vasilii
2015/01/21 17:47:35
nit: I think you can extract it with GetLayoutMana
melandory
2015/01/22 10:47:34
Then I need to cast it to GridLayout. I do not lik
|
| + const ScopedVector<autofill::PasswordForm>& password_forms, |
| + password_manager::CredentialType type); |
| + |
| ManagePasswordsBubbleView* parent_; |
| views::LabelButton* cancel_button_; |
| }; |
| @@ -207,13 +213,13 @@ ManagePasswordsBubbleView::AccountChooserView::AccountChooserView( |
| BuildColumnSet(layout, SINGLE_VIEW_COLUMN_SET); |
| AddTitleRow(layout, parent_->model()); |
| - const auto& pending_credentials = parent_->model()->pending_credentials(); |
| - for (autofill::PasswordForm* form : pending_credentials) { |
| - CredentialsItemView* credential_view = new CredentialsItemView(this, *form); |
| - // Add the title to the layout with appropriate padding. |
| - layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); |
| - layout->AddView(credential_view); |
| - } |
| + AddCredentialItemsWithState( |
| + layout, parent_->model()->local_pending_credentials(), |
| + password_manager::CredentialType::CREDENTIAL_TYPE_LOCAL); |
| + |
| + AddCredentialItemsWithState( |
| + layout, parent_->model()->federated_pending_credentials(), |
| + password_manager::CredentialType::CREDENTIAL_TYPE_FEDERATED); |
| // Button row. |
| BuildColumnSet(layout, SINGLE_BUTTON_COLUMN_SET); |
| @@ -230,13 +236,25 @@ ManagePasswordsBubbleView::AccountChooserView::AccountChooserView( |
| ManagePasswordsBubbleView::AccountChooserView::~AccountChooserView() { |
| } |
| +void ManagePasswordsBubbleView::AccountChooserView::AddCredentialItemsWithState( |
| + views::GridLayout* layout, |
| + const ScopedVector<autofill::PasswordForm>& password_forms, |
| + password_manager::CredentialType type) { |
| + for (autofill::PasswordForm* form : password_forms) { |
| + // Add the title to the layout with appropriate padding. |
| + layout->StartRow(0, SINGLE_VIEW_COLUMN_SET); |
| + layout->AddView(new CredentialsItemView(this, *form, type)); |
| + } |
| +} |
| + |
| void ManagePasswordsBubbleView::AccountChooserView::ButtonPressed( |
| views::Button* sender, const ui::Event& event) { |
| if (sender != cancel_button_) { |
| // ManagePasswordsBubbleModel should care about calling a callback in case |
| // the bubble is dismissed by any other means. |
| CredentialsItemView* view = static_cast<CredentialsItemView*>(sender); |
| - parent_->model()->OnChooseCredentials(view->form()); |
| + parent_->model()->OnChooseCredentials(view->form(), |
| + view->credential_type()); |
| } else { |
| parent_->model()->OnNopeClicked(); |
| } |