| 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 "base/macros.h" | 9 #include "base/macros.h" |
| 10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 column_set->AddPaddingColumn(0, views::kItemLabelSpacing); | 59 column_set->AddPaddingColumn(0, views::kItemLabelSpacing); |
| 60 column_set->AddColumn(views::GridLayout::TRAILING, | 60 column_set->AddColumn(views::GridLayout::TRAILING, |
| 61 views::GridLayout::FILL, | 61 views::GridLayout::FILL, |
| 62 0, | 62 0, |
| 63 views::GridLayout::USE_PREF, | 63 views::GridLayout::USE_PREF, |
| 64 0, | 64 0, |
| 65 0); | 65 0); |
| 66 } | 66 } |
| 67 } | 67 } |
| 68 | 68 |
| 69 scoped_ptr<views::Label> GenerateUsernameLabel( | 69 std::unique_ptr<views::Label> GenerateUsernameLabel( |
| 70 const autofill::PasswordForm& form) { | 70 const autofill::PasswordForm& form) { |
| 71 scoped_ptr<views::Label> label(new views::Label(GetDisplayUsername(form))); | 71 std::unique_ptr<views::Label> label( |
| 72 new views::Label(GetDisplayUsername(form))); |
| 72 label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( | 73 label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 73 ui::ResourceBundle::SmallFont)); | 74 ui::ResourceBundle::SmallFont)); |
| 74 label->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 75 label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 75 return label; | 76 return label; |
| 76 } | 77 } |
| 77 | 78 |
| 78 scoped_ptr<views::Label> GeneratePasswordLabel( | 79 std::unique_ptr<views::Label> GeneratePasswordLabel( |
| 79 const autofill::PasswordForm& form) { | 80 const autofill::PasswordForm& form) { |
| 80 base::string16 text = | 81 base::string16 text = |
| 81 form.federation_origin.unique() | 82 form.federation_origin.unique() |
| 82 ? form.password_value | 83 ? form.password_value |
| 83 : l10n_util::GetStringFUTF16( | 84 : l10n_util::GetStringFUTF16( |
| 84 IDS_PASSWORDS_VIA_FEDERATION, | 85 IDS_PASSWORDS_VIA_FEDERATION, |
| 85 base::UTF8ToUTF16(form.federation_origin.host())); | 86 base::UTF8ToUTF16(form.federation_origin.host())); |
| 86 scoped_ptr<views::Label> label(new views::Label(text)); | 87 std::unique_ptr<views::Label> label(new views::Label(text)); |
| 87 label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( | 88 label->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 88 ui::ResourceBundle::SmallFont)); | 89 ui::ResourceBundle::SmallFont)); |
| 89 label->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 90 label->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 90 if (form.federation_origin.unique()) | 91 if (form.federation_origin.unique()) |
| 91 label->SetObscured(true); | 92 label->SetObscured(true); |
| 92 return label; | 93 return label; |
| 93 } | 94 } |
| 94 | 95 |
| 95 scoped_ptr<views::ImageButton> GenerateDeleteButton( | 96 std::unique_ptr<views::ImageButton> GenerateDeleteButton( |
| 96 views::ButtonListener* listener) { | 97 views::ButtonListener* listener) { |
| 97 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); | 98 ui::ResourceBundle* rb = &ui::ResourceBundle::GetSharedInstance(); |
| 98 scoped_ptr<views::ImageButton> button(new views::ImageButton(listener)); | 99 std::unique_ptr<views::ImageButton> button(new views::ImageButton(listener)); |
| 99 button->SetImage(views::ImageButton::STATE_NORMAL, | 100 button->SetImage(views::ImageButton::STATE_NORMAL, |
| 100 rb->GetImageNamed(IDR_CLOSE_2).ToImageSkia()); | 101 rb->GetImageNamed(IDR_CLOSE_2).ToImageSkia()); |
| 101 button->SetImage(views::ImageButton::STATE_HOVERED, | 102 button->SetImage(views::ImageButton::STATE_HOVERED, |
| 102 rb->GetImageNamed(IDR_CLOSE_2_H).ToImageSkia()); | 103 rb->GetImageNamed(IDR_CLOSE_2_H).ToImageSkia()); |
| 103 button->SetImage(views::ImageButton::STATE_PRESSED, | 104 button->SetImage(views::ImageButton::STATE_PRESSED, |
| 104 rb->GetImageNamed(IDR_CLOSE_2_P).ToImageSkia()); | 105 rb->GetImageNamed(IDR_CLOSE_2_P).ToImageSkia()); |
| 105 return button; | 106 return button; |
| 106 } | 107 } |
| 107 | 108 |
| 108 scoped_ptr<views::Label> GenerateDeletedPasswordLabel() { | 109 std::unique_ptr<views::Label> GenerateDeletedPasswordLabel() { |
| 109 scoped_ptr<views::Label> text(new views::Label( | 110 std::unique_ptr<views::Label> text(new views::Label( |
| 110 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_DELETED))); | 111 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_DELETED))); |
| 111 text->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 112 text->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 112 text->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( | 113 text->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 113 ui::ResourceBundle::SmallFont)); | 114 ui::ResourceBundle::SmallFont)); |
| 114 return text; | 115 return text; |
| 115 } | 116 } |
| 116 | 117 |
| 117 scoped_ptr<views::Link> GenerateUndoLink(views::LinkListener* listener) { | 118 std::unique_ptr<views::Link> GenerateUndoLink(views::LinkListener* listener) { |
| 118 scoped_ptr<views::Link> undo_link(new views::Link( | 119 std::unique_ptr<views::Link> undo_link( |
| 119 l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_UNDO))); | 120 new views::Link(l10n_util::GetStringUTF16(IDS_MANAGE_PASSWORDS_UNDO))); |
| 120 undo_link->SetHorizontalAlignment(gfx::ALIGN_RIGHT); | 121 undo_link->SetHorizontalAlignment(gfx::ALIGN_RIGHT); |
| 121 undo_link->set_listener(listener); | 122 undo_link->set_listener(listener); |
| 122 undo_link->SetUnderline(false); | 123 undo_link->SetUnderline(false); |
| 123 undo_link->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( | 124 undo_link->SetFontList(ui::ResourceBundle::GetSharedInstance().GetFontList( |
| 124 ui::ResourceBundle::SmallFont)); | 125 ui::ResourceBundle::SmallFont)); |
| 125 return undo_link; | 126 return undo_link; |
| 126 } | 127 } |
| 127 | 128 |
| 128 } // namespace | 129 } // namespace |
| 129 | 130 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 184 AddUndoRow(layout); | 185 AddUndoRow(layout); |
| 185 } else { | 186 } else { |
| 186 AddCredentialsRow(layout); | 187 AddCredentialsRow(layout); |
| 187 } | 188 } |
| 188 } | 189 } |
| 189 | 190 |
| 190 int ManagePasswordItemsView::PasswordFormRow::GetFixedHeight( | 191 int ManagePasswordItemsView::PasswordFormRow::GetFixedHeight( |
| 191 password_manager::ui::State state) { | 192 password_manager::ui::State state) { |
| 192 if (state != password_manager::ui::MANAGE_STATE) | 193 if (state != password_manager::ui::MANAGE_STATE) |
| 193 return 0; | 194 return 0; |
| 194 scoped_ptr<views::ImageButton> delete_button(GenerateDeleteButton(nullptr)); | 195 std::unique_ptr<views::ImageButton> delete_button( |
| 195 scoped_ptr<views::Link> link(GenerateUndoLink(nullptr)); | 196 GenerateDeleteButton(nullptr)); |
| 196 scoped_ptr<views::Label> label(GenerateDeletedPasswordLabel()); | 197 std::unique_ptr<views::Link> link(GenerateUndoLink(nullptr)); |
| 198 std::unique_ptr<views::Label> label(GenerateDeletedPasswordLabel()); |
| 197 views::View* row_views[] = {delete_button.get(), link.get(), label.get()}; | 199 views::View* row_views[] = {delete_button.get(), link.get(), label.get()}; |
| 198 return std::accumulate(row_views, row_views + arraysize(row_views), 0, | 200 return std::accumulate(row_views, row_views + arraysize(row_views), 0, |
| 199 [](int max_height, const views::View* view) { | 201 [](int max_height, const views::View* view) { |
| 200 return std::max(max_height, view->GetPreferredSize().height()); | 202 return std::max(max_height, view->GetPreferredSize().height()); |
| 201 }); | 203 }); |
| 202 } | 204 } |
| 203 | 205 |
| 204 void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow( | 206 void ManagePasswordItemsView::PasswordFormRow::AddCredentialsRow( |
| 205 views::GridLayout* layout) { | 207 views::GridLayout* layout) { |
| 206 ResetControls(); | 208 ResetControls(); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 220 delete_button_ = GenerateDeleteButton(this).release(); | 222 delete_button_ = GenerateDeleteButton(this).release(); |
| 221 layout->AddView(delete_button_, 1, 1, | 223 layout->AddView(delete_button_, 1, 1, |
| 222 views::GridLayout::TRAILING, views::GridLayout::FILL, | 224 views::GridLayout::TRAILING, views::GridLayout::FILL, |
| 223 0, fixed_height_); | 225 0, fixed_height_); |
| 224 } | 226 } |
| 225 } | 227 } |
| 226 | 228 |
| 227 void ManagePasswordItemsView::PasswordFormRow::AddUndoRow( | 229 void ManagePasswordItemsView::PasswordFormRow::AddUndoRow( |
| 228 views::GridLayout* layout) { | 230 views::GridLayout* layout) { |
| 229 ResetControls(); | 231 ResetControls(); |
| 230 scoped_ptr<views::Label> text = GenerateDeletedPasswordLabel(); | 232 std::unique_ptr<views::Label> text = GenerateDeletedPasswordLabel(); |
| 231 scoped_ptr<views::Link> undo_link = GenerateUndoLink(this); | 233 std::unique_ptr<views::Link> undo_link = GenerateUndoLink(this); |
| 232 undo_link_ = undo_link.get(); | 234 undo_link_ = undo_link.get(); |
| 233 BuildColumnSetIfNeeded(layout, TWO_COLUMN_SET); | 235 BuildColumnSetIfNeeded(layout, TWO_COLUMN_SET); |
| 234 layout->StartRow(0, TWO_COLUMN_SET); | 236 layout->StartRow(0, TWO_COLUMN_SET); |
| 235 layout->AddView(text.release(), 1, 1, | 237 layout->AddView(text.release(), 1, 1, |
| 236 views::GridLayout::FILL, views::GridLayout::FILL, | 238 views::GridLayout::FILL, views::GridLayout::FILL, |
| 237 0, fixed_height_); | 239 0, fixed_height_); |
| 238 layout->AddView(undo_link.release(), 1, 1, | 240 layout->AddView(undo_link.release(), 1, 1, |
| 239 views::GridLayout::FILL, views::GridLayout::FILL, | 241 views::GridLayout::FILL, views::GridLayout::FILL, |
| 240 0, fixed_height_); | 242 0, fixed_height_); |
| 241 } | 243 } |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 295 deleted | 297 deleted |
| 296 ? ManagePasswordsBubbleModel::REMOVE_PASSWORD | 298 ? ManagePasswordsBubbleModel::REMOVE_PASSWORD |
| 297 : ManagePasswordsBubbleModel::ADD_PASSWORD); | 299 : ManagePasswordsBubbleModel::ADD_PASSWORD); |
| 298 } | 300 } |
| 299 | 301 |
| 300 void ManagePasswordItemsView::Refresh() { | 302 void ManagePasswordItemsView::Refresh() { |
| 301 DCHECK_NE(password_manager::ui::PENDING_PASSWORD_STATE, model_->state()); | 303 DCHECK_NE(password_manager::ui::PENDING_PASSWORD_STATE, model_->state()); |
| 302 RemoveAllChildViews(true); | 304 RemoveAllChildViews(true); |
| 303 AddRows(); | 305 AddRows(); |
| 304 } | 306 } |
| OLD | NEW |