Chromium Code Reviews| Index: chrome/browser/ui/views/passwords/manage_password_items_view.cc |
| diff --git a/chrome/browser/ui/views/passwords/manage_password_items_view.cc b/chrome/browser/ui/views/passwords/manage_password_items_view.cc |
| index 54dd1d3b76ee0a3e304231cec9f6ff6b796080d4..56f65d92104a893e4afeba2e3ba3eccd603217e8 100644 |
| --- a/chrome/browser/ui/views/passwords/manage_password_items_view.cc |
| +++ b/chrome/browser/ui/views/passwords/manage_password_items_view.cc |
| @@ -5,6 +5,7 @@ |
| #include "chrome/browser/ui/views/passwords/manage_password_items_view.h" |
| #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
| +#include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h" |
|
vasilii
2015/06/03 18:32:02
Remove.
dvadym
2015/06/19 15:27:29
Done.
|
| #include "chrome/grit/generated_resources.h" |
| #include "grit/components_strings.h" |
| #include "ui/base/l10n/l10n_util.h" |
| @@ -110,6 +111,7 @@ class ManagePasswordItemsView::PasswordFormRow : public views::ButtonListener, |
| ManagePasswordItemsView* host_; |
| const autofill::PasswordForm* password_form_; |
| views::Link* undo_link_; |
| + views::Link* update_link_; |
| views::ImageButton* delete_button_; |
| bool deleted_; |
| }; |
| @@ -135,7 +137,8 @@ void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow( |
| views::GridLayout* layout) { |
| ResetControls(); |
| int column_set_id = |
| - host_->model_->state() == password_manager::ui::PENDING_PASSWORD_STATE |
| + host_->model_->state() == password_manager::ui::PENDING_PASSWORD_STATE && |
| + !host_->model_->account_for_update_selection() |
| ? TWO_COLUMN_SET |
| : THREE_COLUMN_SET; |
| BuildColumnSetIfNeeded(layout, column_set_id); |
| @@ -144,15 +147,27 @@ void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow( |
| layout->AddView(GenerateUsernameLabel(*password_form_)); |
| layout->AddView(GeneratePasswordLabel(*password_form_)); |
| if (column_set_id == THREE_COLUMN_SET) { |
| - ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
| - delete_button_ = new views::ImageButton(this); |
| - delete_button_->SetImage(views::ImageButton::STATE_NORMAL, |
| - rb->GetImageNamed(IDR_CLOSE_2).ToImageSkia()); |
| - delete_button_->SetImage(views::ImageButton::STATE_HOVERED, |
| - rb->GetImageNamed(IDR_CLOSE_2_H).ToImageSkia()); |
| - delete_button_->SetImage(views::ImageButton::STATE_PRESSED, |
| - rb->GetImageNamed(IDR_CLOSE_2_P).ToImageSkia()); |
| - layout->AddView(delete_button_); |
| + if (host_->model_->account_for_update_selection()) { |
| + update_link_ = new views::Link( |
| + l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_UPDATE_LINK)); |
| + update_link_->SetHorizontalAlignment(gfx::ALIGN_RIGHT); |
| + update_link_->set_listener(this); |
| + update_link_->SetUnderline(false); |
| + update_link_->SetFontList( |
| + ui::ResourceBundle::GetSharedInstance().GetFontList( |
| + ui::ResourceBundle::SmallFont)); |
| + layout->AddView(update_link_); |
| + } else { |
| + ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
| + delete_button_ = new views::ImageButton(this); |
| + delete_button_->SetImage(views::ImageButton::STATE_NORMAL, |
| + rb->GetImageNamed(IDR_CLOSE_2).ToImageSkia()); |
| + delete_button_->SetImage(views::ImageButton::STATE_HOVERED, |
| + rb->GetImageNamed(IDR_CLOSE_2_H).ToImageSkia()); |
| + delete_button_->SetImage(views::ImageButton::STATE_PRESSED, |
| + rb->GetImageNamed(IDR_CLOSE_2_P).ToImageSkia()); |
| + layout->AddView(delete_button_); |
| + } |
| } |
| } |
| @@ -187,9 +202,13 @@ void ManagePasswordItemsView::PasswordFormRow::ButtonPressed( |
| void ManagePasswordItemsView::PasswordFormRow::LinkClicked(views::Link* sender, |
| int event_flags) { |
| - DCHECK_EQ(undo_link_, sender); |
| - deleted_ = false; |
| - host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); |
| + DCHECK(sender == undo_link_ || sender == update_link_); |
| + if (sender == undo_link_) { |
| + deleted_ = false; |
| + host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); |
| + } else { |
| + host_->NotifyAccountForUpdateWasSelected(*password_form_); |
| + } |
| } |
| void ManagePasswordItemsView::PasswordFormRow::ResetControls() { |
| @@ -231,6 +250,12 @@ void ManagePasswordItemsView::NotifyPasswordFormStatusChanged( |
| : ManagePasswordsBubbleModel::ADD_PASSWORD); |
| } |
| +void ManagePasswordItemsView::NotifyAccountForUpdateWasSelected( |
| + const autofill::PasswordForm& password_form) { |
| + model_->OnUpdateClicked(password_form); |
| + // ManagePasswordsBubbleView::CloseBubble(); // todo do we need this? |
|
vabr (Chromium)
2015/06/03 16:33:26
Shouldn't this go through the controller?
Also, if
vasilii
2015/06/03 18:32:02
ManagePasswordItemsView definitely shouldn't think
dvadym
2015/06/19 15:27:29
Thanks, I forgot to remove it. Done
|
| +} |
| + |
| void ManagePasswordItemsView::Refresh() { |
| DCHECK_NE(password_manager::ui::PENDING_PASSWORD_STATE, model_->state()); |
| RemoveAllChildViews(true); |