OLD | NEW |
---|---|
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 <numeric> | 7 #include <numeric> |
8 | 8 |
9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" | 9 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
10 #include "chrome/grit/generated_resources.h" | 10 #include "chrome/grit/generated_resources.h" |
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
148 void ButtonPressed(views::Button* sender, const ui::Event& event) override; | 148 void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
149 // views::LinkListener: | 149 // views::LinkListener: |
150 void LinkClicked(views::Link* source, int event_flags) override; | 150 void LinkClicked(views::Link* source, int event_flags) override; |
151 | 151 |
152 void ResetControls(); | 152 void ResetControls(); |
153 | 153 |
154 ManagePasswordItemsView* host_; | 154 ManagePasswordItemsView* host_; |
155 const autofill::PasswordForm* password_form_; | 155 const autofill::PasswordForm* password_form_; |
156 // The UI elements pointers are weak and owned by their parent. | 156 // The UI elements pointers are weak and owned by their parent. |
157 views::Link* undo_link_; | 157 views::Link* undo_link_; |
158 views::Link* update_link_; | |
158 views::ImageButton* delete_button_; | 159 views::ImageButton* delete_button_; |
159 const int fixed_height_; | 160 const int fixed_height_; |
160 bool deleted_; | 161 bool deleted_; |
161 | 162 |
162 DISALLOW_COPY_AND_ASSIGN(PasswordFormRow); | 163 DISALLOW_COPY_AND_ASSIGN(PasswordFormRow); |
163 }; | 164 }; |
164 | 165 |
165 ManagePasswordItemsView::PasswordFormRow::PasswordFormRow( | 166 ManagePasswordItemsView::PasswordFormRow::PasswordFormRow( |
166 ManagePasswordItemsView* host, | 167 ManagePasswordItemsView* host, |
167 const autofill::PasswordForm* password_form, | 168 const autofill::PasswordForm* password_form, |
(...skipping 25 matching lines...) Expand all Loading... | |
193 return std::accumulate(row_views, row_views + arraysize(row_views), 0, | 194 return std::accumulate(row_views, row_views + arraysize(row_views), 0, |
194 [](int max_height, const views::View* view) { | 195 [](int max_height, const views::View* view) { |
195 return std::max(max_height, view->GetPreferredSize().height()); | 196 return std::max(max_height, view->GetPreferredSize().height()); |
196 }); | 197 }); |
197 } | 198 } |
198 | 199 |
199 void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow( | 200 void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow( |
200 views::GridLayout* layout) { | 201 views::GridLayout* layout) { |
201 ResetControls(); | 202 ResetControls(); |
202 int column_set_id = | 203 int column_set_id = |
203 host_->model_->state() == password_manager::ui::PENDING_PASSWORD_STATE | 204 host_->model_->state() == password_manager::ui::PENDING_PASSWORD_STATE && |
205 !host_->model_->account_for_update_selection() | |
vabr (Chromium)
2015/06/19 18:03:16
nit: Is this how clang-format indented the line? L
dvadym
2015/07/23 09:45:43
This change was removed.
| |
204 ? TWO_COLUMN_SET | 206 ? TWO_COLUMN_SET |
205 : THREE_COLUMN_SET; | 207 : THREE_COLUMN_SET; |
206 BuildColumnSetIfNeeded(layout, column_set_id); | 208 BuildColumnSetIfNeeded(layout, column_set_id); |
207 layout->StartRowWithPadding(0, column_set_id, 0, | 209 layout->StartRowWithPadding(0, column_set_id, 0, |
208 views::kRelatedControlVerticalSpacing); | 210 views::kRelatedControlVerticalSpacing); |
209 layout->AddView(GenerateUsernameLabel(*password_form_).release(), 1, 1, | 211 layout->AddView(GenerateUsernameLabel(*password_form_).release(), 1, 1, |
210 views::GridLayout::FILL, views::GridLayout::FILL, | 212 views::GridLayout::FILL, views::GridLayout::FILL, |
211 0, fixed_height_); | 213 0, fixed_height_); |
212 layout->AddView(GeneratePasswordLabel(*password_form_).release(), 1, 1, | 214 layout->AddView(GeneratePasswordLabel(*password_form_).release(), 1, 1, |
213 views::GridLayout::FILL, views::GridLayout::FILL, | 215 views::GridLayout::FILL, views::GridLayout::FILL, |
214 0, fixed_height_); | 216 0, fixed_height_); |
215 if (column_set_id == THREE_COLUMN_SET) { | 217 if (column_set_id == THREE_COLUMN_SET) { |
216 delete_button_ = GenerateDeleteButton(this).release(); | 218 if (host_->model_->account_for_update_selection()) { |
217 layout->AddView(delete_button_, 1, 1, | 219 update_link_ = new views::Link( |
218 views::GridLayout::TRAILING, views::GridLayout::FILL, | 220 l10n_util::GetStringUTF16(IDS_PASSWORD_MANAGER_UPDATE_LINK)); |
219 0, fixed_height_); | 221 update_link_->SetHorizontalAlignment(gfx::ALIGN_RIGHT); |
222 update_link_->set_listener(this); | |
223 update_link_->SetUnderline(false); | |
224 update_link_->SetFontList( | |
225 ui::ResourceBundle::GetSharedInstance().GetFontList( | |
226 ui::ResourceBundle::SmallFont)); | |
227 layout->AddView(update_link_); | |
228 } else { | |
229 delete_button_ = GenerateDeleteButton(this).release(); | |
230 layout->AddView(delete_button_, 1, 1, views::GridLayout::TRAILING, | |
231 views::GridLayout::FILL, 0, fixed_height_); | |
232 } | |
220 } | 233 } |
221 } | 234 } |
222 | 235 |
223 void ManagePasswordItemsView::PasswordFormRow::AddUndoRow( | 236 void ManagePasswordItemsView::PasswordFormRow::AddUndoRow( |
224 views::GridLayout* layout) { | 237 views::GridLayout* layout) { |
225 ResetControls(); | 238 ResetControls(); |
226 scoped_ptr<views::Label> text = GenerateDeletedPasswordLabel(); | 239 scoped_ptr<views::Label> text = GenerateDeletedPasswordLabel(); |
227 scoped_ptr<views::Link> undo_link = GenerateUndoLink(this); | 240 scoped_ptr<views::Link> undo_link = GenerateUndoLink(this); |
228 undo_link_ = undo_link.get(); | 241 undo_link_ = undo_link.get(); |
229 BuildColumnSetIfNeeded(layout, TWO_COLUMN_SET); | 242 BuildColumnSetIfNeeded(layout, TWO_COLUMN_SET); |
230 layout->StartRowWithPadding(0, TWO_COLUMN_SET, 0, | 243 layout->StartRowWithPadding(0, TWO_COLUMN_SET, 0, |
231 views::kRelatedControlVerticalSpacing); | 244 views::kRelatedControlVerticalSpacing); |
232 layout->AddView(text.release(), 1, 1, | 245 layout->AddView(text.release(), 1, 1, |
233 views::GridLayout::FILL, views::GridLayout::FILL, | 246 views::GridLayout::FILL, views::GridLayout::FILL, |
234 0, fixed_height_); | 247 0, fixed_height_); |
235 layout->AddView(undo_link.release(), 1, 1, | 248 layout->AddView(undo_link.release(), 1, 1, |
236 views::GridLayout::FILL, views::GridLayout::FILL, | 249 views::GridLayout::FILL, views::GridLayout::FILL, |
237 0, fixed_height_); | 250 0, fixed_height_); |
238 } | 251 } |
239 | 252 |
240 void ManagePasswordItemsView::PasswordFormRow::ButtonPressed( | 253 void ManagePasswordItemsView::PasswordFormRow::ButtonPressed( |
241 views::Button* sender, const ui::Event& event) { | 254 views::Button* sender, const ui::Event& event) { |
242 DCHECK_EQ(delete_button_, sender); | 255 DCHECK_EQ(delete_button_, sender); |
243 deleted_ = true; | 256 deleted_ = true; |
244 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); | 257 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); |
245 } | 258 } |
246 | 259 |
247 void ManagePasswordItemsView::PasswordFormRow::LinkClicked(views::Link* sender, | 260 void ManagePasswordItemsView::PasswordFormRow::LinkClicked(views::Link* sender, |
248 int event_flags) { | 261 int event_flags) { |
249 DCHECK_EQ(undo_link_, sender); | 262 DCHECK(sender == undo_link_ || sender == update_link_); |
250 deleted_ = false; | 263 if (sender == undo_link_) { |
251 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); | 264 deleted_ = false; |
265 host_->NotifyPasswordFormStatusChanged(*password_form_, deleted_); | |
266 } else { | |
267 host_->NotifyAccountForUpdateWasSelected(*password_form_); | |
268 } | |
252 } | 269 } |
253 | 270 |
254 void ManagePasswordItemsView::PasswordFormRow::ResetControls() { | 271 void ManagePasswordItemsView::PasswordFormRow::ResetControls() { |
255 delete_button_ = nullptr; | 272 delete_button_ = nullptr; |
256 undo_link_ = nullptr; | 273 undo_link_ = nullptr; |
257 } | 274 } |
258 | 275 |
259 // ManagePasswordItemsView | 276 // ManagePasswordItemsView |
260 ManagePasswordItemsView::ManagePasswordItemsView( | 277 ManagePasswordItemsView::ManagePasswordItemsView( |
261 ManagePasswordsBubbleModel* manage_passwords_bubble_model, | 278 ManagePasswordsBubbleModel* manage_passwords_bubble_model, |
(...skipping 22 matching lines...) Expand all Loading... | |
284 const autofill::PasswordForm& password_form, bool deleted) { | 301 const autofill::PasswordForm& password_form, bool deleted) { |
285 Refresh(); | 302 Refresh(); |
286 // After the view is consistent, notify the model that the password needs to | 303 // After the view is consistent, notify the model that the password needs to |
287 // be updated (either removed or put back into the store, as appropriate. | 304 // be updated (either removed or put back into the store, as appropriate. |
288 model_->OnPasswordAction(password_form, | 305 model_->OnPasswordAction(password_form, |
289 deleted | 306 deleted |
290 ? ManagePasswordsBubbleModel::REMOVE_PASSWORD | 307 ? ManagePasswordsBubbleModel::REMOVE_PASSWORD |
291 : ManagePasswordsBubbleModel::ADD_PASSWORD); | 308 : ManagePasswordsBubbleModel::ADD_PASSWORD); |
292 } | 309 } |
293 | 310 |
311 void ManagePasswordItemsView::NotifyAccountForUpdateWasSelected( | |
312 const autofill::PasswordForm& password_form) { | |
313 model_->OnUpdateClicked(password_form); | |
314 } | |
315 | |
294 void ManagePasswordItemsView::Refresh() { | 316 void ManagePasswordItemsView::Refresh() { |
295 DCHECK_NE(password_manager::ui::PENDING_PASSWORD_STATE, model_->state()); | 317 DCHECK_NE(password_manager::ui::PENDING_PASSWORD_STATE, model_->state()); |
296 RemoveAllChildViews(true); | 318 RemoveAllChildViews(true); |
297 AddRows(); | 319 AddRows(); |
298 } | 320 } |
OLD | NEW |