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); |