Chromium Code Reviews| 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 "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 Loading... | |
| 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 Loading... | |
| 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 Loading... | |
| 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 } |
| OLD | NEW |