Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(186)

Side by Side Diff: chrome/browser/ui/views/passwords/manage_password_items_view.cc

Issue 1151373006: Update Confirmation UI for saved password change (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clean up Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/views/passwords/manage_password_items_view.h" 5 #include "chrome/browser/ui/views/passwords/manage_password_items_view.h"
6 6
7 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" 7 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
8 #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.
8 #include "chrome/grit/generated_resources.h" 9 #include "chrome/grit/generated_resources.h"
9 #include "grit/components_strings.h" 10 #include "grit/components_strings.h"
10 #include "ui/base/l10n/l10n_util.h" 11 #include "ui/base/l10n/l10n_util.h"
11 #include "ui/base/resource/resource_bundle.h" 12 #include "ui/base/resource/resource_bundle.h"
12 #include "ui/resources/grit/ui_resources.h" 13 #include "ui/resources/grit/ui_resources.h"
13 #include "ui/views/controls/button/button.h" 14 #include "ui/views/controls/button/button.h"
14 #include "ui/views/controls/button/image_button.h" 15 #include "ui/views/controls/button/image_button.h"
15 #include "ui/views/controls/label.h" 16 #include "ui/views/controls/label.h"
16 #include "ui/views/controls/link.h" 17 #include "ui/views/controls/link.h"
17 #include "ui/views/controls/link_listener.h" 18 #include "ui/views/controls/link_listener.h"
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 // views::ButtonListener: 104 // views::ButtonListener:
104 void ButtonPressed(views::Button* sender, const ui::Event& event) override; 105 void ButtonPressed(views::Button* sender, const ui::Event& event) override;
105 // views::LinkListener: 106 // views::LinkListener:
106 void LinkClicked(views::Link* source, int event_flags) override; 107 void LinkClicked(views::Link* source, int event_flags) override;
107 108
108 void ResetControls(); 109 void ResetControls();
109 110
110 ManagePasswordItemsView* host_; 111 ManagePasswordItemsView* host_;
111 const autofill::PasswordForm* password_form_; 112 const autofill::PasswordForm* password_form_;
112 views::Link* undo_link_; 113 views::Link* undo_link_;
114 views::Link* update_link_;
113 views::ImageButton* delete_button_; 115 views::ImageButton* delete_button_;
114 bool deleted_; 116 bool deleted_;
115 }; 117 };
116 118
117 ManagePasswordItemsView::PasswordFormRow::PasswordFormRow( 119 ManagePasswordItemsView::PasswordFormRow::PasswordFormRow(
118 ManagePasswordItemsView* host, const autofill::PasswordForm* password_form) 120 ManagePasswordItemsView* host, const autofill::PasswordForm* password_form)
119 : host_(host), 121 : host_(host),
120 password_form_(password_form), 122 password_form_(password_form),
121 undo_link_(nullptr), 123 undo_link_(nullptr),
122 delete_button_(nullptr), 124 delete_button_(nullptr),
123 deleted_(false) {} 125 deleted_(false) {}
124 126
125 void ManagePasswordItemsView::PasswordFormRow::AddRow( 127 void ManagePasswordItemsView::PasswordFormRow::AddRow(
126 views::GridLayout* layout) { 128 views::GridLayout* layout) {
127 if (deleted_) { 129 if (deleted_) {
128 AddUndoRow(layout); 130 AddUndoRow(layout);
129 } else { 131 } else {
130 AddCredentialsRow(layout); 132 AddCredentialsRow(layout);
131 } 133 }
132 } 134 }
133 135
134 void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow( 136 void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow(
135 views::GridLayout* layout) { 137 views::GridLayout* layout) {
136 ResetControls(); 138 ResetControls();
137 int column_set_id = 139 int column_set_id =
138 host_->model_->state() == password_manager::ui::PENDING_PASSWORD_STATE 140 host_->model_->state() == password_manager::ui::PENDING_PASSWORD_STATE &&
141 !host_->model_->account_for_update_selection()
139 ? TWO_COLUMN_SET 142 ? TWO_COLUMN_SET
140 : THREE_COLUMN_SET; 143 : THREE_COLUMN_SET;
141 BuildColumnSetIfNeeded(layout, column_set_id); 144 BuildColumnSetIfNeeded(layout, column_set_id);
142 layout->StartRowWithPadding(0, column_set_id, 0, 145 layout->StartRowWithPadding(0, column_set_id, 0,
143 views::kRelatedControlVerticalSpacing); 146 views::kRelatedControlVerticalSpacing);
144 layout->AddView(GenerateUsernameLabel(*password_form_)); 147 layout->AddView(GenerateUsernameLabel(*password_form_));
145 layout->AddView(GeneratePasswordLabel(*password_form_)); 148 layout->AddView(GeneratePasswordLabel(*password_form_));
146 if (column_set_id == THREE_COLUMN_SET) { 149 if (column_set_id == THREE_COLUMN_SET) {
147 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); 150 if (host_->model_->account_for_update_selection()) {
148 delete_button_ = new views::ImageButton(this); 151 update_link_ = new views::Link(
149 delete_button_->SetImage(views::ImageButton::STATE_NORMAL, 152 l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_UPDATE_LINK));
150 rb->GetImageNamed(IDR_CLOSE_2).ToImageSkia()); 153 update_link_->SetHorizontalAlignment(gfx::ALIGN_RIGHT);
151 delete_button_->SetImage(views::ImageButton::STATE_HOVERED, 154 update_link_->set_listener(this);
152 rb->GetImageNamed(IDR_CLOSE_2_H).ToImageSkia()); 155 update_link_->SetUnderline(false);
153 delete_button_->SetImage(views::ImageButton::STATE_PRESSED, 156 update_link_->SetFontList(
154 rb->GetImageNamed(IDR_CLOSE_2_P).ToImageSkia()); 157 ui::ResourceBundle::GetSharedInstance().GetFontList(
155 layout->AddView(delete_button_); 158 ui::ResourceBundle::SmallFont));
159 layout->AddView(update_link_);
160 } else {
161 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance();
162 delete_button_ = new views::ImageButton(this);
163 delete_button_->SetImage(views::ImageButton::STATE_NORMAL,
164 rb->GetImageNamed(IDR_CLOSE_2).ToImageSkia());
165 delete_button_->SetImage(views::ImageButton::STATE_HOVERED,
166 rb->GetImageNamed(IDR_CLOSE_2_H).ToImageSkia());
167 delete_button_->SetImage(views::ImageButton::STATE_PRESSED,
168 rb->GetImageNamed(IDR_CLOSE_2_P).ToImageSkia());
169 layout->AddView(delete_button_);
170 }
156 } 171 }
157 } 172 }
158 173
159 void ManagePasswordItemsView::PasswordFormRow::AddUndoRow( 174 void ManagePasswordItemsView::PasswordFormRow::AddUndoRow(
160 views::GridLayout* layout) { 175 views::GridLayout* layout) {
161 ResetControls(); 176 ResetControls();
162 views::Label* text = 177 views::Label* text =
163 new views::Label(l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_DELETED)); 178 new views::Label(l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_DELETED));
164 text->SetHorizontalAlignment(gfx::ALIGN_LEFT); 179 text->SetHorizontalAlignment(gfx::ALIGN_LEFT);
165 text->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( 180 text->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList(
(...skipping 14 matching lines...) Expand all
180 195
181 void ManagePasswordItemsView::PasswordFormRow::ButtonPressed( 196 void ManagePasswordItemsView::PasswordFormRow::ButtonPressed(
182 views::Button* sender, const ui::Event& event) { 197 views::Button* sender, const ui::Event& event) {
183 DCHECK_EQ(delete_button_, sender); 198 DCHECK_EQ(delete_button_, sender);
184 deleted_ = true; 199 deleted_ = true;
185 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); 200 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_);
186 } 201 }
187 202
188 void ManagePasswordItemsView::PasswordFormRow::LinkClicked(views::Link* sender, 203 void ManagePasswordItemsView::PasswordFormRow::LinkClicked(views::Link* sender,
189 int event_flags) { 204 int event_flags) {
190 DCHECK_EQ(undo_link_, sender); 205 DCHECK(sender == undo_link_ || sender == update_link_);
191 deleted_ = false; 206 if (sender == undo_link_) {
192 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); 207 deleted_ = false;
208 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_);
209 } else {
210 host_->NotifyAccountForUpdateWasSelected(*password_form_);
211 }
193 } 212 }
194 213
195 void ManagePasswordItemsView::PasswordFormRow::ResetControls() { 214 void ManagePasswordItemsView::PasswordFormRow::ResetControls() {
196 delete_button_ = nullptr; 215 delete_button_ = nullptr;
197 undo_link_ = nullptr; 216 undo_link_ = nullptr;
198 } 217 }
199 218
200 // ManagePasswordItemsView 219 // ManagePasswordItemsView
201 ManagePasswordItemsView::ManagePasswordItemsView( 220 ManagePasswordItemsView::ManagePasswordItemsView(
202 ManagePasswordsBubbleModel* manage_passwords_bubble_model, 221 ManagePasswordsBubbleModel* manage_passwords_bubble_model,
(...skipping 21 matching lines...) Expand all
224 const autofill::PasswordForm& password_form, bool deleted) { 243 const autofill::PasswordForm& password_form, bool deleted) {
225 Refresh(); 244 Refresh();
226 // After the view is consistent, notify the model that the password needs to 245 // After the view is consistent, notify the model that the password needs to
227 // be updated (either removed or put back into the store, as appropriate. 246 // be updated (either removed or put back into the store, as appropriate.
228 model_->OnPasswordAction(password_form, 247 model_->OnPasswordAction(password_form,
229 deleted 248 deleted
230 ? ManagePasswordsBubbleModel::REMOVE_PASSWORD 249 ? ManagePasswordsBubbleModel::REMOVE_PASSWORD
231 : ManagePasswordsBubbleModel::ADD_PASSWORD); 250 : ManagePasswordsBubbleModel::ADD_PASSWORD);
232 } 251 }
233 252
253 void ManagePasswordItemsView::NotifyAccountForUpdateWasSelected(
254 const autofill::PasswordForm& password_form) {
255 model_->OnUpdateClicked(password_form);
256 // 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
257 }
258
234 void ManagePasswordItemsView::Refresh() { 259 void ManagePasswordItemsView::Refresh() {
235 DCHECK_NE(password_manager::ui::PENDING_PASSWORD_STATE, model_->state()); 260 DCHECK_NE(password_manager::ui::PENDING_PASSWORD_STATE, model_->state());
236 RemoveAllChildViews(true); 261 RemoveAllChildViews(true);
237 AddRows(); 262 AddRows();
238 } 263 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698